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.


 * Se você quiser "usar" as APIs web da Wikimedia, visite a página Web APIs hub (em desenvolvimento).
 * Se você quiser contribuir para o desenvolvimento do software Wikimedia, consulte New Developers.
 * 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 MediaWiki Stakeholders' Group (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. Ele usa jQuery como a biblioteca de JavaScript do cliente.

MediaWiki é escrito principalmente para a Plataforma LAMP e é executado na maioria dos sistemas operacionais. O MediaWiki usa principalmente os servidores de banco de dados MySQL e MariaDB.

O desenvolvimento acontece em Código aberto style, é em grande parte coordenado online e apoiado pela Fundação Wikimedia, embora desenvolvedores comunitários voluntários também desempenhem um papel importante.


 * 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 e #wikimedia-dev.
 * O código fonte é gerenciado utilizando-se o sistema de controle de versão Git.
 * A revisão de código para a maioria dos projetos é executado em . 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.
 * 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) – leia a respeito ou sugira novas funcionalidades para o ecossistema do MediaWiki

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.
 *  – 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.
 *  – saiba como escrever um código seguro.



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.
 * [//doc.wikimedia.org/mediawiki-core/master/php/ MediaWiki Class Reference] – documentação técnica gerada a partir do código fonte do MediaWiki.
 *  – 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.
 *  – 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.
 *  – Framework do MediaWiki para o processamento de longa execução de tarefas de forma assíncrona.
 *  – 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
 * 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:
 * Estendendo a marcação do wiki – adicione um gancho do analisador para modificar o conteúdo do wikitexto.

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 Part 1 – instruções sobre como criar uma skin para o MediaWiki.
 * Manual:Skin configuration – um guia para a configuração de skins para uma wiki.

Ajuda para reutilização do código da biblioteca

 * – um guia para empacotar bibliotecas de terceiros para uso com o MediaWiki.

Usos de wikis de terceiros

 * - para Wikis corporativos
 * - para Wikis acadêmicos