Rozcestník pro vývojáře
Toto je hlavní přehled vývoje MediaWiki, obsahující odkazy na klíčové dokumenty, zdroje a nástroje dostupné vývojářům MediaWiki. Je vytvořena pro zkušené LAMP vývojáře, kteří mají zkušenosti s používáním MediaWiki.
- Pokud chcete použít Wikimedia web APIs, navštivte API:Web APIs hub .
- Chcete-li přispět k vývoji software Wikimedie, vizte New Developers .
- Úvodního průvodce vývojem MediaWiki a rozšíření MediaWiki najdete na stránce Jak se stát hackerem MediaWiki .
- Pokud chcete spolupracovat s dalšími uživateli MediaWiki třetích stran, MediaWiki Stakeholders' Group (MWStake) je uživatelská skupina MediaWiki sestávající z vývojářů MediaWiki, správců systému, uživatelů, konzultantů a poskytovatelů hostingu.
Přehled
MediaWiki je software, na kterém běží Wikipedie, její sesterské projekty a tisíce dalších wiki po celém světě.
MediaWiki je napsána v programovacím jazyce PHP. [1] Jako knihovnu JavaScriptu používá jQuery.
MediaWiki je primárně psána pro platformu LAMP [2] a běží na většině operačních systémů. MediaWiki primárně používá databázové servery MySQL a MariaDB. [3]
Vývoj probíhá ve stylu otevřeného zdroje [4]. Je do značné míry koordinován online a je podporován nadací Wikimedia Foundation. I když vývojáři dobrovolnických komunit hrají také velkou roli.
- Diskuse o vývoji se děje na různých mailing listech a IRC kanálech. Hlavní seznam vývojářů je wikitech-l. Hlavní kanály IRC vývojáře jsou #mediawiki a #wikimedia-dev.
- Zdrojový kód je řízen pomocí řídicího systému verze Git.[5]
- Kontrola kódu pro většinu projektů se provádí na Gerrit . Postupujte podle tohoto návodu a nastavte Git a Gerrit za účelem zasílání oprav.
- Hlášení chyb a úkoly pro většinu projektů jsou spravovány na Phabricator .
- Vývojáři, kteří rozšiřují rozhraní nebo s rozhraním MediaWiki (místo toho, aby pracovali na hlavním kódu) mají několik výhodných bodů rozšíření, včetně API, Háčky a Skiny - viz část Rozšíření MediaWiki tato stránka obsahuje přehled.
Klíčové dokumenty
Kód, jeho vývoj a konvence
- Development policy – přehled základních pravidel pro vývojáře.
- Konvence pro psaní kódu Vás seznámí s tím, jak má vypadat kód pro MediaWiki.
- Security for developers – Vám pomůže napsat kód, který do MediaWiki nezavleče bezpečnostní díry.
- Manual:Pre-commit checklist – čtěte dřív, než uděláte commit (předáte) svého kódu.
- Kontrola kódu v Gerritu – základní průvodce pro kontrolory změn před jejich odesláním do zdrojového kódu MediaWiki.
- Technical Decision Making Process – read about the process to decide on making larger technical changes.
Testování a odstraňování chyb
- Jak odstraňovat chyby – návod k vychytávání chyb v MediaWiki.
- Manual:Errors and symptoms – přehled běžných chyb vyskytujících se na MediaWiki a jejich příznaků.
- Testování prohlížečů – naučte se psát testy UI pro MediaWiki s použitím Selenia
- Testování jednotky – vás naučí jak psát unit testy pro MediaWiki s využitím PHPUnit.
- Testy integrace API – vás naučí psát testy API integrace pro MediaWiki pomocí Mocha.
- Security for developers – vás naučí jak psát bezpečný kód.
Architektura
- MediaWiki architecture – an introduction to MediaWiki's architecture.
- Manual:Code – přehled klíčových funkcí a proměnných, s nimiž se můžete setkat ve zdrojovém kódu MediaWiki.
- Příručka:Rozložení databáze – přehled databázových schémat s nimiž pracuje MediaWiki.
- Manuál:Objekty v globálních proměnných – seznam vybraných klíčových globálních proměnných.
- Lokalizace – vás seznámí s tím jak funguje internacionalizace u MediaWiki.
- Manuál, je u této wiki jmenný prostor kde je soustředěna – dokumentace pro vývojáře.
- MediaWiki Class Reference – technická dokumentace, generovaná přímo ze zdrojového kódu MediaWiki. (Pozor: Vzájemné reference tříd (class) jsou poměrně komplikované, takže se ty stránky mohou načítat velmi pomalu.)
Subsystémy
- API – API MediaWiki umožňuje přímý přístup k datům uloženým v databázích MediaWiki, na té nejvyšší úrovni.
- ContentHandler – * ContentHandler – je MediaWiki framework, který umožňuje obsah wiki stránky interpretovat různým způsobem, podle typu obsahu.
- Manuál:Přístup k databázi – přehled využití databází MediaWiki, včetně stručného průvodce, který vás provede tím, jak s nimi pracovat.
- Příručka:Fronta úloh – MediaWiki framework pro asynchronní zpracovávání náročných úloh.
- Messages API – MediaWiki framework pro lokalizaci zpráv v PHP či JavaScriptu.
Doplňky do MediaWiki
MediaWiki bylo navrženo tak, aby je bylo možno přizpůsobit bez změn „kódu jádra“. To zajišťuje, že lze upgradovat na novější verzi bez potřeby slučovat uživatelské úpravy do nové verze. V MediaWiki existuje šest hlavních bodů, kde mohou vývojáři přidávat nové funkce nebo měnit stávající vlastnosti. Těmito body jsou:
- API – Přístup k datům a metadatům v instanci MediaWiki prostřednictvím webového API.
- Manuál:Háčky (hooks) – umožňují něco provést vždy, když se zavolají.
- Parsovací funkce – vytvoří nový příkaz, např:
{{#if:...|...|...}}
. - Skiny – mění vzhled a chování uživatelského rozhraní MediaWiki.
- Speciální stránky – přidá novou speciální stránku.
- Tag extensions – vytvoří nový tag, např:
<newtag>...</newtag>
. - Extending wiki markup – přidá k parseru nový háček, kterým lze upravit obsah wikitextu.
Nápověda pro vývojáře rozšíření
- Manual:Developing extensions – průvodce vývojem rozšíření.
- Project:WikiProject Extensions
- Extensions FAQ
- Seznam rozšíření naleznete v Kategorie:Rozšíření .
- Manual:$wgExtensionFunctions – slouží k odložení nastavení (nebo spuštění dalších zpětných volání) pro rozšíření, dokud jádro MediaWiki není k dispozici.
- Extension:BoilerPlate - prázdná šablona rozšíření.
Nápověda pro tvorbu témat
- Manual:Skinning Part 1 – postup jak vytvořit téma pro MediaWiki.
- Manual:Skin configuration – průvodce konfigurací témat pro wiki.
Nápověda pro přebírání kódu knihoven
- Manual:Developing libraries – návod jak zabalit knihovny třetích stran pro použití s MediaWiki
Third-party wiki se používá
Poznámky
- ↑ Ne všechny MediaWiki jsou psány v PHP. Některé podpůrné nástroje jsou psány v jiných jazycích, včetně dávkových souborů, Shell skripty, vytváření souborů a Python (programovací jazyk).
- ↑ MediaWiki pracují na většině platforem, které podporují PHP. Nedostatek určitých nástrojů nebo funkcí operačního systému může omezit funkčnost nebo výkon MediaWiki na jiných platformách než LAMP.
- ↑ MediaWiki má podporu pro DBMS kromě MySQL a MariaDB, včetně PostgreSQL a SQLite.
- ↑ Vývojáři jsou směsicí dobrovolníků a placených zaměstnanců (nebo dodavatelů) pro různé organizace. Úplný seznam lidí, kteří pracují na kódu MediaWiki, naleznete v článku Developers .
- ↑ Procházejte zdrojový kód a revize úložišť kódů na https://phabricator.wikimedia.org/diffusion/ nebo si stáhněte zdrojový kód do svého systému pomocí Gerritu.