Nehackujte jádro MediaWiki
Toto je esej. Vyjadřuje názory a nápady některých uživatelů mediawiki.org, ale nemusí mít širokou podporu. Neváhejte a aktualizujte tuto stránku podle potřeby nebo použijte diskusní stránku a navrhněte zásadní změny. |
Tato stránka ve zkratce: I když se všem vývojářům doporučuje zasílat vylepšení jádra MediaWiki do repozitáře kódu — úprava základních souborů MediaWiki individuální instalace wiki často vede k více problémům než řešením. Použití rozšíření nebo odeslání vašeho vylepšení do úložiště kódu jsou preferovanější a stabilnější řešení. |
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.
Problémy, kterým čelí wikiny, které mají hacknuté jádro
- Časy aktualizace MediaWiki se pohybují od 30 minut do 6 hodin nebo dokonce 6 týdnů, pokud váš
diff
ukazuje, že bylo změněno 13650 řádků. - Zvýšení spamu a dalších nežádoucích útoků kvůli bezpečnostním dírám.
- Chybí vám nové funkce kvůli konfliktním hackům do základních souborů.
- Nemožnost používat dokumentaci MediaWiki.org – vše bylo napsáno za předpokladu, že jste nenapadli své základní soubory (pokud samozřejmě nenapíšete dokumentaci specificky pro to, jak provozovat MediaWiki, když je tento konkrétní hack používán).
- Opakování původního problému – protože hlášení o chybě je mnohem spolehlivější způsob, jak vyřešit problém než základní hack – pokud z jiného důvodu nebude problém zkoumat skupina vývojářů a může objevit potřebné změny kódu, které jste přehlédli .
- Stěžovat si vývojářům na to, že vaše základní soubory nefungují – a nenacházet mnoho sympatií – pokud hacknete základní soubory – účinná technická podpora je téměř nemožná.
Výjimky
Existují výjimky z tohoto pravidla?
Ani náhodou.
Dobře, velmi zřídka. Ale to je obecně pro konkrétní wikiny nebo implementace lidmi, kteří jsou extrémně obeznámeni s kódovou základnou MediaWiki, vývojovými postupy a bezpečnostním modelem. Ti, kteří řádně dokumentují své změny a praktikují správnou kontrolu revizí pomocí svého kódu. Pokud se musíte ptát, je pravděpodobné, že byste neměli.
Rozšíření
Všimněte si, že většina této stránky se vztahuje také na důležitá rozšíření. Je špatný nápad přímo začít hackovat rozšíření Semantic MediaWiki nebo kterékoli z rozšíření používané na Wikipedii a dalších webech Wikimedia.
Výjimkou může být situace, kdy se rozšíření instaluje hlavně zkopírováním jeho kódu z této wiki (místo jeho získání z softwarového úložiště).
Co dělat místo toho
Spíše než hackování jádra MediaWiki je třeba zvážit několik alternativních řešení, víceméně v tomto pořadí:
- MediaWiki je mocná šelma hned po vybalení, můžete toho udělat hodně se zprávami z rozhraní MediaWiki, jako je
MediaWiki:Sidebar
a mnoho dalších, viz také další stránky na této wiki, např. JavaScript a CSS doplňky a změny. - Vyviňte rozšíření, abyste dosáhli toho, co měl váš hack udělat, nebo jednoduše použijte jeden z existujících háčků
- Odešlete hlášení o chybě
- Přispějte svým vylepšením jádra do repozitáře kódu, aby ostatní mohli mít z vaší opravy prospěch
Související odkazy
- {{Extension by patch warning }} — šablona pro přidání na stránky rozšíření, která vyžadují úpravy jádra MediaWiki.