Portal dos Programadores
É uma sinopse de alto nível sobre o desenvolvimento do MediaWiki, incluindo hiperligações para os principais documentos, recursos e ferramentas disponíveis para os programadores do MediaWiki. Isto está escrito para os programadores experientes que utilizam LAMP e que possuem experiência na utilização do MediaWiki.
- Se quiser "utilizar" as APIs da Web da Wikimedia, visite o 'Portal dos Programadores'.
- Se quiser contribuir para o desenvolvimento do programa da Wikimedia, consulte Novos Programadores .
- Para um guia de introdução de como desenvolver o MediaWiki e as extensões do MediaWiki, leia Como tornar-se num hacker do MediaWiki .
- Se quiser colaborar com outros utilizadores terceiros do MediaWiki, a Grupo de Participantes do MediaWiki (MWStake) é um grupo de utilizadores do MediaWiki que fazem parte: programadores do MediaWiki, administradores de sistemas, utilizadores, consultores, e provedores de alojamento.
Sinopse
O MediaWiki é o programa em que a Wikipédia é baseada, os seus projetos relacionados e milhares de wikis em todo o mundo.
O MediaWiki está escrito na linguagem de programação PHP[1]. Este utiliza jQuery como a biblioteca de JavaScript de cliente.
O MediaWiki está escrito principalmente para ser usado com a LAMP[2] mas é executado na maioria dos sistemas operativos. O MediaWiki trabalha principalmente os servidores de bancos de dados MySQL e MariaDB.[3]
O desenvolvimento é efetuado com código aberto[4], é coordenado em grande medida online, e é suportado pela Fundação Wikimedia, embora os programadores voluntários da comunidade também desempenhem um papel muito importante.
- Ocorre debates sobre o desenvolvimento em várias listas de discussão e nos canais de IRC. A lista principal dos programadores é wikitech-l. E o canal IRC principal é #mediawiki connect.
- Código fonte é gerenciado usando a ferramenta Git que faz o controle da versão do sistema.[5]
- Revisão do código para a maioria dos projetos é executado em Gerrit . Siga este tutorial para configurar o Git e Gerrit para enviar correções (patch).
- Relatórios de Erros (bugs) e tarefas para a maioria dos projetos são geridos no Phabricator .
- Os desenvolupadors que criam extensões ou interfaces com o MediaWiki (em vez de trabalhar no código do núcleo) têm disponíveis vários pontos de extensão muito práticos: a API, o sistema de hooks e as aparências – vejais a secção #Estender MediaWiki com sugestões de ideias.
Documentos chave
Código, desenvolvimento e estilo
- Development policy – uma visão geral das principais políticas de desenvolvimento.
- Convenções de programação – aprenda a escrever código no estilo do MediaWiki.
- Security for developers – saiba como ajudar a manter o MediaWiki protegido.
- Manual:Pre-commit checklist – leia esta lista de verificação antes de contribuir com o código.
- Guia de revisão do código – a guide for reviewers of commits to the MediaWiki source code.
- Technical Decision Making Process – leia sobre o processo para decidir on making larger as mudanças técnicas.
Depuração e testes
- Como depurar – um guia para a depuração do MediaWiki.
- Manual:Errors and symptoms – uma visão geral dos erros comuns do MediaWiki e os seus sintomas correspondentes.
- Testes no navegador – aprenda a escrever testes de integração da API para o MediaWiki utilizando o Selenium.
- Teste unitário: aprenda a escrever testes de unidade para o MediaWiki utilizando o PHPUnit.
- Testes de integração da API – aprenda a escrever testes de integração da API para o MediaWiki utilizando Mocha.
- Security for developers – saiba como programar um código fonte seguro.
Arquitetura
- MediaWiki architecture – uma introdução à arquitetura do MediaWiki.
- Manual:Code – uma visão geral das partes principais do código fonte do MediaWiki.
- Manual:Disposição da Base de Dados – uma visão geral dos esquemas da base de dados do MediaWiki.
- Manual:Global object variables – uma lista parcial das principais variáveis globais.
- Tradução – saiba mais sobre o sistema de internacionalização do MediaWiki.
- Manual espaço nominal nesta wiki – documentação para os programadores.
- MediaWiki Class Reference: manual técnico gerado a partir do código fonte do MediaWiki. Nota: a classe de referencia é grande, a página terá um carregamento lento.
Subsistemas
- API: esta fornece acesso direto e de alto nível aos dados contidos nas bases de dados do MediaWiki.
- ContentHandler – Estrutura do MediaWiki para suportar tipos personalizados de conteúdo de página.
- Acesso à Base de Dados – uma visão geral do uso de bases de dados no MediaWiki, incluindo um breve guia para a camada de abstração de banco de dados.
- Job queue – Estrutura do MediaWiki para o processamento de longa execução de tarefas de forma assíncrona.
- API das Mensagens – Estrutura do MediaWiki para fornecer mensagens de aplicativo com PHP ou JavaScript.
Ampliar o MediaWiki
O MediaWiki foi concebido para permitir a modificação sem alterar o código do núcleo. Isto torna mais fácil atualizar para uma nova versão do MediaWiki sem ter que mesclar manualmente mudanças no código antigo. Há seis pontos principais de extensão que permitem aos desenvolvedores alterar ou ampliar o que MediaWiki pode fazer. Os pontos de extensão são:
- API: acessar os dados e os metadados das instâncias do MediaWiki através da sua API da Web
- Hooks – toda vez que um dado evento acontece, faça alguma coisa.
- Funções do Analisador – cria um novo comando como:
{{#if:...|...|...}}
. - Temas – altera a aparência do MediaWiki.
- Páginas Especiais – adiciona uma nova página especial.
- Extensões de Etiqueta – cria uma nova tag como:
<newtag>...</newtag>
. - Estendendo a marcação wiki – adicione um gancho do analisador para modificar o conteúdo do wikitexto.
Ajuda para os programadores de extensões
- Manual:Desenvolver Extensões – um guia para o desenvolvimento de extensões.
- Extensões - Perguntas Mais Frequentes
- Consulte Categoria:Extensões para encontrar as extensões existentes.
- Extension:BoilerPlate - um modelo de extensão em branco.
Ajuda para desenvolvedores de skins
- Manual:How to make a MediaWiki skin – instruções sobre como criar um tema para o MediaWiki.
- Manual:Configuração do Tema – um guia para a configuração de temas para uma wiki.
Ajuda para reutilizar código de bibliotecas
- Manual:Developing libraries – um guia para a inclusão de bibliotecas de terceiros para utilizar com o MediWiki
Notas
- ↑ Nem todo o MediaWiki está escrito em PHP. Algumas ferramentas de apoio estão escritas em outras linguagens, incluindo ficheiros batch, scripts shell, makefiles e em Python.
- ↑ O MediaWiki é executado na maioria das plataformas que suportam PHP. No entanto, a falta de certas funcionalidades do sistema operativo podem limitar o funcionamento e o desempenho do MediaWiki em plataformas que não sejam LAMP.
- ↑ MediaWiki também suporta o DBMS, PostgreSQL e SQLite.
- ↑ Os programadores são uma mistura de voluntários e pessoal assalariado (ou contratados) por várias organizações. Para uma lista completa de quem trabalha no código do MediaWiki, leia Developers $dev.
- ↑ Procure o código-fonte e as revisões dos repositórios de código em $1 ou baixe o código-fonte para o seu sistema usando o Gerrit.