Rozcestník pro vývojáře
Toto je hlavní přehled vývoje MediaWiki. Obsahuje odkazy na klíčové dokumenty, zdroje a nástroje dostupné vývojářům MediaWiki. Je vytvořen pro zkušené vývojáře LAMP, kteří mají zkušenosti s používáním MediaWiki.
- Pokud chcete použít webové rozhraní API Wikimedie, navštivte vývojářský portál.
- Chcete-li přispět k vývoji software Wikimedie, podívejte se na Noví vývojáři .
- Úvodního průvodce vývojem MediaWiki a rozšíření MediaWiki najdete na stránce Jak se stát vývojářem MediaWiki .
- Pokud chcete spolupracovat s dalšími uživateli MediaWiki třetích stran, potom Skupina zúčastněných stran MediaWiki (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 wikin 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 na stránce wikitech-l. Hlavní kanál IRC pro vývojáře je na stránce #mediawiki připojit se.
- Zdrojový kód je řízen pomocí řídicího systému verze Git.[5]
- Kontrola kódu se pro většinu projektů provádí na Gerrit u. Postupujte podle tohoto návodu a nastavte si Git a Gerrit pro zasílání oprav.
- Hlášení chyb a úkoly pro většinu projektů jsou spravovány na Phabricator u.
- Vývojáři rozšiření nebo propojení s MediaWiki (místo práce na základním kódu) mají několik výhodných bodů rozšíření, včetně API, systém háčků a zobrazení – přehled naleznete v části #Extending MediaWiki na této stránce.
Klíčové dokumenty
Kód, jeho vývoj a konvence
- Zásady vývoje – 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.
- Bezpečnost pro vývojáře – vám pomůže napsat kód, který do MediaWiki nezavleče bezpečnostní díry.
- Příručka:Kontrolní seznam před potvrzením – před potvrzením kódu si přečtěte tento kontrolní seznam.
- 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 – přečtěte si o postupu a rozhodněte se o provedení větších technických změn.
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 a jejich příznaků vyskytujících se na MediaWiki.
- Testování prohlížečů – naučte se psát testy UI pro MediaWiki s použitím Selenia
- Testování jednotky – naučí vás jak psát unit testy pro MediaWiki s využitím PHPUnitu.
- Testy integrace API – naučí vás psát testy API integrace pro MediaWiki pomocí Mocha.
- Bezpečnost pro vývojáře – naučí vás jak psát bezpečný kód.
Architektura
- Architektura MediaWiki – úvod do architektury MediaWiki.
- Příručka:Kód – 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:Schéma databáze – přehled databázových schémat s nimiž pracuje MediaWiki.
- Příručka: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.
- Manual (příručka) je jmenný prostor na této wiki – dokumentace pro vývojáře.
- Reference třídy MediaWiki (MediaWiki Class Reference) – technická dokumentace, generovaná přímo ze zdrojového kódu MediaWiki. (Poznámka: Vzájemné reference tříd (class) jsou poměrně komplikované, takže se tyto 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 – je MediaWiki framework, který umožňuje obsah wiki stránky interpretovat různým způsobem podle typu obsahu.
- Přístup k databázi – přehled využití databází MediaWiki, včetně stručného průvodce, který vás provede, jak s nimi pracovat.
- Fronta úloh – MediaWiki framework pro asynchronní zpracovávání náročných úloh.
- Zprávy API – MediaWiki framework pro lokalizaci zpráv v PHP či JavaScriptu.
Doplňky do MediaWiki
MediaWiki byla navržena tak, aby ji bylo možno přizpůsobit beze změn "kódu jádra". Tím je zajištěno, že lze aktualizovat 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.
- Háčky – umožňují něco provést vždy, když se zavolají.
- Parsovací funkce – vytvoří nový příkaz, například:
{{#if:...|...|...}}
. - Zobrazení – mění vzhled a chování uživatelského rozhraní MediaWiki.
- Speciální stránky – přidá novou speciální stránku.
- Rozšíření značek (tagů) – vytvoří nový tag, například:
<newtag>...</newtag>
. - Rozšíření označení wiki – přidá k parseru nový háček, kterým lze upravit obsah wikitextu.
Nápověda pro vývojáře rozšíření
- Příručka:Vývoj rozšíření – průvodce vývojem rozšíření.
- Rozšíření FAQ
- Seznam rozšíření naleznete na stránce Kategorie:Rozšíření .
- Extension:BoilerPlate - prázdná šablona rozšíření.
Nápověda pro tvorbu témat
- Příručka:Jak vytvořit vzhled MediaWiki – postup jak vytvořit zobrazení pro MediaWiki.
- Manual:Skin configuration – průvodce konfigurací zobrazení 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í v MediaWiki
Poznámky
- ↑ Ne vše v MediaWiki je psáno v PHP. Některé podpůrné nástroje jsou psány v jiných jazycích, včetně dávkových souborů, Shell skriptů, vytváření souborů a Pythonu (programovací jazyk).
- ↑ MediaWiki pracuje 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 podporuje DBMS jiné než 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 Vývojáři .
- ↑ Procházejte zdrojový kód a revize úložišť kódů v Gerrit nebo si stáhněte zdrojový kód do svého systému pomocí Gerrit .