Central do desenvolvedor
Esta é uma visão geral de alto nível do desenvolvimento do MediaWiki, incluindo links para documentos chave, recursos e ferramentas disponíveis para os desenvolvedores do MediaWiki. Ele é escrito para desenvolvedores LAMP qualificados que tenham experiência no uso do MediaWiki.
- Se você quiser "usar" as APIs web da Wikimedia, visite Porta dos Desenvolvedoresl.
- Se você quiser contribuir para o desenvolvimento do software Wikimedia, consulte Novos desenvolvedores .
- Para um guia introdutório para o desenvolvimento de extensões MediaWiki e MediaWiki, leia Como se tornar um hacker do MediaWiki .
- Se você quiser colaborar com outros usuários do MediaWiki de terceiros, o Grupo de Intervenientes do MediaWiki (MWStake) é um MediaWiki grupo de usuários composto por desenvolvedores, administradores de sistema, usuários, consultores e provedores de hospedagem do MediaWiki.
Visão global
MediaWiki é o software que alimenta a Wikipédia, seus projetos parceiros e milhares de outras wikis ao redor do mundo.
MediaWiki está escrito no linguagem de programação PHP[1]. Ele usa jQuery como a biblioteca de JavaScript do cliente.
MediaWiki é escrito principalmente para a Plataforma LAMP[2] e é executado na maioria dos sistemas operacionais. O MediaWiki usa principalmente os servidores de bases de dados MySQL and MariaDB.[3]
O desenvolvimento acontece em Código aberto style[4], é amplamente coordenado on-line e apoiado pela Wikimedia Foundation, embora desenvolvedores comunitários voluntários também tenham uma grande participação.
- A discussão de desenvolvimento ocorre em várias mailing lists e canais IRC. A lista principal dos desenvolvedores é wikitech-l. O canal principal IRC do desenvolvedor é #mediawiki connect.
- O código fonte é gerenciado utilizando-se o sistema de controle de versão Git.[5]
- A revisão de código para a maioria dos projetos é executado em Gerrit . Siga este tutorial para configurar o Git e Gerrit para enviar patches.
- Relatórios de erros e tarefas para a maioria dos projetos são gerenciados no Phabricator .
- A interação e a extensão de desenvolvedores com o MediaWiki (em vez de trabalhar no código do núcleo) têm vários pontos de extensão convenientes, incluindo o API, o sistema Hooks e skins – veja a seção #Extensões MediaWiki desta página mais detalhes.
Documentos chave
Código, desenvolvimento e estilo
- Development policy – uma visão geral das políticas de desenvolvimento chave.
- Convenções de código – aprenda a escrever código ao estilo de MediaWiki.
- Security for developers – aprenda como ajudar a manter o MediaWiki seguro.
- Manual:Pre-commit checklist – revisão desta lista de verificação antes de confirmar o código.
- Code review guide – um guia de revisão obrigatório ao código-fonte do MediaWiki.
- Technical Decision Making Process – leia sobre o processo para decidir sobre mudanças técnicas maiores.
Depuração e teste
- How to debug – um guia de depuração para o MediaWiki.
- Manual:Errors and symptoms – uma visão geral dos erros mais comuns do MediaWiki e seus sintomas correlacionados.
- Testes de navegador – aprenda a escrever testes de interface de usuário para o MediaWiki usando o Selenium.
- Unit testing – 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 escrever um código seguro.
Arquitetura
- MediaWiki architecture – uma introdução à arquitetura do MediaWiki.
- Manual:Code – uma visão geral das peças-chave do código-fonte do MediaWiki.
- Manual:Database layout/pt-br – uma visão geral dos esquemas de banco de dados do MediaWiki.
- Manual:Global object variables – uma lista parcial das principais variáveis globais.
- Localisation – aprenda sobre o sistema de internacionalização do MediaWiki.
- O namespace Manual neste wiki – documentação para desenvolvedores.
- MediaWiki Class Reference – documentação técnica gerada a partir do código fonte do MediaWiki. (Nota: A referência de classe é uma página grande, de carregamento lento.)
Sub-sistemas
- API – A API do MediaWiki fornece acesso direto de alto nível para os dados contidos nas bases de dados do MediaWiki.
- ContentHandler – Estrutura do MediaWiki para suportar tipos personalizados de conteúdo de página.
- Database access – 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 – Framework do MediaWiki para o processamento de longa execução de tarefas de forma assíncrona.
- Messages API – Framework do MediaWiki para fornecer mensagens de aplicativo localizadas com PHP ou JavaScript.
Extensões 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
- Ganchos – toda vez que um dado evento acontece, faça alguma coisa.
- Funções do analisador sintático – cria um novo comando como:
{{#if:...|...|...}}
. - Temas – altera a aparência do MediaWiki.
- Páginas especiais – adiciona uma nova página especial.
- Desenvolvendo extensões – cria uma nova tag como:
<newtag>...</newtag>
. - Extending wiki markup – adicione um gancho do analisador para modificar o conteúdo do wikitexto.
Ajuda para desenvolvedores de extensões
- Manual:Desenvolvendo extensões – um guia para o desenvolvimento de extensões.
- Extensions FAQ
- Veja Categoria:Extensões para obter uma lista de extensões.
- 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 uma skin para o MediaWiki.
- Manual:Configuração de aparências – um guia para a configuração de skins para uma wiki.
Ajuda para reutilização do código da biblioteca
- Manual:Developing libraries – um guia para empacotar bibliotecas de terceiros para uso com o MediaWiki
Notas
- ↑ Nem todo o MediaWiki está escrito em PHP. Algumas ferramentas de suporte estão escritas em outras línguas, incluindo arquivos em lote, scripts de shell, makefiles e Python.
- ↑ O MediaWiki é executado na maioria das plataformas que podem suportar o PHP, no entanto, a falta de determinados utilitários ou recursos do sistema operacional pode limitar a funcionalidade ou o desempenho do MediaWiki em plataformas que não sejam LAMP.
- ↑ O MediaWiki suporta outras DBMS além de MySQL e MariaDB, incluindo PostgreSQL e SQLite.
- ↑ Os desenvolvedores são uma mistura de voluntários e funcionários remunerados (ou contratados) para várias organizações.Para uma lista completa de quem trabalha no código do MediaWiki, leia o artigo Desenvolvedores .
- ↑ Procure o código-fonte e as revisões dos repositórios de código em Gerrit ou baixe o código-fonte para o seu sistema usando o Gerrit .