Do not hack MediaWiki core/cs

Zatímco hackování jádra MediaWiki je často řešením navrhovaným na jiných fórech podpory MediaWiki, není to ideálním řešením. Obecně vám způsobí více problémů, než vyřeší a pouze ztíží instalaci budoucích upgradů.

Pro účely tohoto článku "jádro" (core) zahrnuje všechny soubory, které patří k původní instalaci MediaWiki. To znamená všechny soubory kromě LocalSettings.php, docker-compose.override.yml, souborů ve vaší složce "extensions" nebo "skins" nebo jiných složkách, které jste přidali od instalace.



Proč byste neměli upravovat základní soubory
Odolejte pokušení, bez ohledu na to, jak snadné je upravit základní soubory, aby MediaWiki dělala to, co chcete.


 * Pokud tak učiníte, bude komplikované, obtížné nebo téměř nemožné aplikovat aktualizace stránek, jako je zabezpečení a opravy chyb.
 * Těm, kteří přijdou poté, ztížíte údržbu webu.
 * Svůj web můžete učinit zranitelný vůči zneužití.
 * Ostatní vývojáři jsou méně nakloněni vám pomoci, pokud jste hackli své jádro – pokud z jiného důvodu, je pro ně obtížné zjistit, co se stalo.

Jádro MediaWiki bylo navrženo jako modulární, takže by neměl být důvod ho hackovat. Pokud existuje funkce, kterou chcete, a nelze ji provést mimo úpravu jádra, zvažte vývoj rozšíření nebo odeslání vašeho hacku jako opravy. Odešlete hlášení o chybě a sdělte komunitě funkci, kterou chcete dosáhnout. Poté bude testována a vaše funkce se může stát součástí jádra MediaWiki.

Problems faced by wikis which hack their core

 * MediaWiki upgrade times go from 30 minutes to 6 hours or even 6 weeks if your  shows 13650 lines have been changed.
 * Increase in spam and other unwanted attacks due to security holes.
 * Missing out on new features due to conflicting hacks to core files.
 * Inability to use MediaWiki.org documentation — all of which has been written under the assumption that you have not hacked your core files (unless of course you write documentation specifically for how to operate MediaWiki when that particular hack is being used).
 * Repetition of the original problem — as a bug report is a far more reliable way to solve a problem than a core hack — if for no other reason than a group of developers will be looking into the problem and may discover necessary code changes you missed.
 * Complaining to developers about your core files not working — and not finding much sympathy — if you hack core files — effective technical support is all but impossible.

Exceptions
Are there exceptions to this rule?

Nope.

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.

Extensions
Note that most of this page also applies to important extensions. It's a bad idea to directly start hacking the Semantic MediaWiki extensions, or any of the extensions used on Wikipedia and other Wikimedia sites.

An exception could be if an extension is mainly installed by copying its code from this wiki (instead of getting it from a software repository). It means it's not very seriously maintained.

What to do instead
Rather than hacking MediaWiki core, there are several alternative solutions to consider, more or less in this order:


 * 1) MediaWiki is a powerful beast out of the box, you can do a lot with MediaWiki's interface messages such as   and many many others, see also other pages on this wiki for e.g. JavaScript and CSS additions and changes.
 * 1) Develop an extension to accomplish what your hack was intended to do, or simply use one of the existing hooks
 * 1) Submit a bug report
 * 1) Contribute your improvement to core to the code repository so others can benefit from your fix