Do not hack MediaWiki core/pt-br

Mesmo que hackear o núcleo do MediaWiki seja muitas vezes uma solução proposta em outros fóruns de suporte do MediaWiki, não é uma solução ideal. Geralmente, o procedimento irá causar mais problemas do que resolver e só tornarão futuros upgrades mais difíceis de instalar.

Para os propósitos deste ensaio, o "núcleo" pretende incluir todos os arquivos que pertencem à instalação original do MediaWiki. Isto é todos os arquivos, exceto o arquivo LocalSettings.php, os de sua pasta "extensions", ou outras pastas que você adicionou desde a sua instalação.

Por que você não deve modificar os arquivos do núcleo?
Não importa que seja fácil modificar os arquivos do núcleo para fazer o MediaWiki fazer o que você quer que ele faça, resista à tentação.


 * Se o fizer, fará com que seja complicado, difícil ou quase impossível de aplicar atualizações do site, tais como correções de segurança e de bugs.
 * Você vai deixar as coisas mais difíceis para aqueles que vêm depois para manter o site.
 * Você poderá deixar o seu site vulnerável a ataques.
 * Outros desenvolvedores estão menos inclinados a ajudá-lo se você tiver hackeado o seu núcleo - se não por outra razão, é difícil para eles saber o que foi feito.

O núcleo do MediaWiki foi projetado para ser modular, então não deve haver nenhuma razão para hackea-lo. Se há uma característica que você quer e não pode ser realizado fora do núcleo modificado, considere desenvolver uma extensão ou enviar o seu hackeamento como uma correção. Envie um relatório de bug e diga à comunidade o recurso que você quer realizar. Ele então será testado e seu recurso pode tornar-se uma parte do núcleo do MediaWiki.

Problemas enfrentados pelos wikis que hackeiam seu núcleo

 * Os tempos de atualização do MediaWiki vão de 30 minutos a 6 horas ou até mesmo seis semanas, se o seu diff mostrar que 13.650 linhas foram alteradas.
 * Aumento de spam e outros ataques indesejados devido a falhas de segurança
 * Perda de novos recursos devido a ataques conflitantes a arquivos do núcleo
 * Incapacidade de usar documentação do MediaWiki.org - tudo o que foi escrito sob o pressuposto de que você não tenha hackeado seus arquivos de núcleo (a não ser, é claro, que você escreva a documentação especificamente sobre a forma de operar o MediaWiki quando esse hackeamento em particular está sendo usado)
 * A repetição do problema original - como um relatório de bug é uma maneira mais confiável para resolver um problema do que um hackeamento do núcleo - se não por outro motivo, um grupo de desenvolvedores vai analisar o problema e poderá descobrir as mudanças de código necessárias você perdeu
 * Reclamar para desenvolvedores sobre os seus arquivos de núcleo que não funcionam - e não encontrar muita simpatia - se você hackear os arquivos de núcleo - um suporte técnico eficaz é quase impossível

Exceções
Existem exceções a esta regra?

Não.

Ok, muito, muito raramente. Mas isso é geralmente para wikis específicas ou para implementações feitas por pessoas que são extremamente familiarizadas com a base de código do MediaWiki, as práticas de desenvolvimento e modelo de segurança. Aqueles que documentam corretamente as suas alterações e praticar o controle de revisão adequada com o seu código. Se você tem que perguntar, é provável que você não deva.

Extensões
Observe que a maior parte desta página também se aplica às extensões importantes. É uma má idéia começar diretamente hackeando as extensões Semantic do MediaWiki, ou qualquer uma das extensões utilizadas na Wikipédia e outros sites da Wikimedia.

Uma exceção poderia ser se uma extensão for instalada principalmente copiando seu código a partir desta wiki (em vez de adquiri-lo a partir de um repositório de software). Isso significa que não é muito seriamente mantida.

O que fazer então?
Em vez de hackear o núcleo do MediaWiki, há várias soluções alternativas a considerar, mais ou menos, nesta ordem:


 * 1) O MediaWiki é um animal poderoso fora da caixa, você pode fazer muitas coisas com as mensagens de interface do MediaWiki, como MediaWiki:Sidebar e muitos, muitos outros, ver também outras páginas neste wiki para, por exemplo, adições de JavaScript e CSS e mudanças.
 * 2) Desenvolva uma extensão para realizar o que seu hackeamento faria, ou simplesmente use um dos hooks existentes
 * 3) Envie um relatório de bug
 * 4) Contribua com o seu aperfeiçoamento do núcleo para o repositório de código para que outros possam se beneficiar de sua correção