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.

Okay, very very rarely. But this is generally for specific wikis or implementations by people who are extremely familiar with the MediaWiki code base, development practices and security model. Those who properly document their changes and practice proper revision control with their code. If you have to ask, chances are you shouldn't.

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