Do not hack MediaWiki core/fr

Même si Modifier le coeur de Médiawiki est une solution souvent proposée sur d'autres forums de support MédiaWiki, ce n'est pas une solution idéale. En règle générale, ça vous posera plus de problèmes que ça ne vous aidera et compliquera les mises à jour.

Dans le cadre de cet essai, le coeur ou core signifiera "tous les fichiers qui appartiennent à l'installation MediaWiki de base." C'est à dire tous les fichiers sauf LocalSettings.php, ceux qui sont dans le répertoire  ou les fichiers que vous avez ajouté depuis l'installation.

Pourquoi vous ne devriez pas modifier les fichiers du noyau
resistez à la tentation, quelle que soit la facilité avec laquelle vous pouvez modifier MediaWiki pour lui faire faire ce que vous voulez.


 * Le faire rendra impossible, compliqué ou quasiment impossible d'appliquer les mises à jours au site, comme les corrections de bogues ou de faille de sécurité.
 * Vous rendrez la maintenance du site compliquée pour vos successeurs
 * Vous laisserez peut être votre site vulnérables à certaines attaques.
 * Les autres développeurs vous aiderons moins volontier si vous avez modifié votre coeur - ne serait-ce que parce qu'il leur sera difficile de savoir ce qui a été fait.

MédiaWiki a été conçu pour être modulaire, vous devriez donc trouvez un moyen de faire ce que vous voulez sans toucher au coeur. Si une fonctionnalité vous manque et ne peut être implantée qu'en y touchant, envisagez de développer une extension ou de soumettre un patch avec votre modification. Soumettez un rapport de bug et décrivez à la communauté la fonctionnalité que vous souhaitez. Il sera testé et votre fonctionnalité pourrait incorporer le core.

Problèmes rencontrés par les wikis qui modifient leur noyau

 * Les mises à jours MediaWiki peuvent durer de 30 minutes à 6 heures ou même 6 semaines si votre  diff montre que 13650 lignes ont été modifiées.
 * Augmentation du spam et d'autres attaques à cause des trous de sécurité
 * Perte de fonctionnalité à cause de hacks en conflit dans les fichiers du coeur
 * Impossibilité d'utiliser de manière fiable la doc de MediaWiki.org - tout est écrit avec la supposition que vous n'avez pas modifié les fichiers du coeur (sauf bien sur si vous vous chargez vous même de la documentation de ce hack)
 * Répétition du problème original - comme un rapport de bogue est une manière plus fiable de résoudre un problème que de hacker directement le coeur - pour la simple raison qu'un groupe de développeur va investiguer et pourrait trouver des changements nécessaires que vous avez raté
 * Vous plaindre auprès des développeurs à propos de vos fichier du core qui ne fonctionneraient pas - et ne pas trouver beaucoup de soutien - si vous modifiez les fichiers du core - un support efficace est tout sauf possible

Exceptions
Y a-t-il des exceptions ?

Non.

D'accord, très très rarement. Mais c'est en général le cas pour des wikis spécifiques ou pour des implémentations faites par des personnes très familières avec la base de code MediaWiki, les bonnes pratiques de développement et le modèle de sécurité. Ceux qui documentent de manière appropriée leurs changements et pratique une gestion de version efficace de leur code. Si vous devez demander, il y a une forte chance que vous ne devriez pas le faire.

Extensions
Notez qu'une grande partie de cette page est aussi applicable aux extensions importantes. C'est une mauvaise idée de commencer à modifier Semantic MediaWiki, ou toute extension utilisée sur Wikipédia et les autres sites Wikimédia.

Une exception pourrait être une extension installée principalement par copie de code de ce wiki (au lieux de la récupérer à partir d'un gestionnaire de code). Ça signifie qu'elle n'est pas maintenue très sérieusement.

Que faire à la place
Plutôt que de modifier core, il existes des alternatives que vous pouvez envisager plus ou moins dans l'ordre suivant:


 * 1) MédiaWiki est une belle bête en tant que tel, vous pouvez faire beaucoup rien qu'avec les messages d'interface comme la barre MediaWiki:Sidebar et bien bien d'autres, voir aussi les autres pages de ce wiki, par ex. les ajout et modification JavaScript et CSS.
 * 2) Développez une extension pour réaliser vos modifications ou utilisez simplement l'un des crochets existants.
 * 3) Soumettre un rapport de bogue
 * 4) Contribuez au dépot de code du noyau pour que d'autres puissent bénéficier de vos améliorations