Developer hub/pt-br



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.

Para uma introdução ao desenvolvimento do MediaWiki, leia como se tornar um hacker do MediaWiki.

Para ajuda na instalação ou modificação do MediaWiki, visite o Sysadmin hub. Para ajuda sobre como usar o MediaWiki, visite o User hub.

Visão global
O MediaWiki é desenvolvido em código aberto escrito em PHP primariamente para plataforma LAMP. O desenvolvimento do núcleo é amplamente coordenado online:


 * A discussão de desenvolvimento ocorre em várias mailing lists e canais IRC. A lista de desenvolvedor principal é wikitech-l. O canal IRC do principal desenvolvedor é #mediawiki. Leia o artigo Developers para ter uma idéia de quem são as pessoas nas listas de discussão e canais de IRC.


 * O código fonte é gerenciado utilizando-se o sistema de controle de revisões Git. Leia o artigo sobre o Git para uma visão geral de como os desenvolvedores do MediaWiki usam o Git. Leia o artigo labsconsole Help:Access se desejar acesso.


 * A revisão de código é realizada no Gerrit, consulte este tutorial para obter configuração com o git e o Gerrit, a fim de submeter patches.


 * 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 desta página mais detalhes.

Documentos chave


Código, desenvolvimento e estilo

 * Development policy – uma visão geral das políticas de desenvolvimento chave.


 * Coding conventions – aprenda a escrever código PHP no estilo do MediaWiki.


 * Security for developers – aprenda como ajudar a manter o MediaWiki seguro.


 * 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.


 * Requests for Comment (RfC) – read about or suggest new features for the MediaWiki ecosystem

Depuração e teste

 * Bugs – uma visão geral de acompanhamento de bugs no projeto MediaWiki.


 * 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.


 * Selenium Framework – 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.


 * Security – problemas de segurança são relatados para o e-mail [mailto:security@wikimedia.org security@wikimedia.org].



Arquitetura

 * Manual:Code – uma visão geral das peças-chave do código-fonte do MediaWiki.


 * Database layout – uma visão geral dos esquemas de banco de dados do MediaWiki.


 * Variáveis de objeto globais – 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.


 * MediaWiki Virtual Library (MVL) - manuais, guias e coleções de artigos selecionados.

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 – MediaWiki's framework for supporting custom types of page content.


 * 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.


 * Fila de tarefas – Framework do MediaWiki para o processamento de longa execução de tarefas de forma assíncrona.


 * API de mensagens – 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á cinco 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 – acessa os dados e metadados de instâncias MediaWiki através de uma API web poderosa.


 * Hooks – cada vez que um determinado evento faça alguma coisa..


 * Parser Functions – cria um novo comando como:


 * Skins – altera a aparência do MediaWiki.


 * Páginas especiais – adiciona uma nova página especial.


 * Extensões de tags – cria uma nova tag como:

Ajuda para desenvolvedores de extensões
Extension:BoilerPlate - uma predefinição de extensão em branco
 * Manual:Developing extensions – guia de desenvolvimento de extensões.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * Veja Category:Extensions, uma lista completa de extensões.
 * Manual:$wgExtensionFunctions – usado para adiar a instalação (ou executar outras chamadas de retorno) para extensões até depois que o núcleo do MediaWiki esteja instalado.

Ajuda para desenvolvedores de skins

 * Manual:Skinning – instruções sobre como criar uma skin para o MediaWiki.
 * Manual:Skin configuration – um guia para a configuração de skins para uma wiki.

Usos de wikis de terceiros

 * Enterprise hub - para Wikis corporativos
 * Academic hub - para Wikis acadêmicos