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řující nebo propojení s MediaWiki (místo práce na základním kódu) mají několik pohodlných bodů rozšíření , včetně API a Hooks systému.
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.
- 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.
- Developing libraries – návod jak zabalit knihovny třetích stran pro použití v MediaWiki
Testování a odstraňování chyb
- Jak odstraňovat chyby – návod k vychytávání chyb v MediaWiki.
- 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.
- Kód – přehled klíčových funkcí a proměnných, s nimiž se můžete setkat ve zdrojovém kódu MediaWiki.
- Schéma databáze – přehled databázových schémat s nimiž pracuje MediaWiki.
- 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 umožňovala úpravy bez změny základního kódu. To usnadňuje aktualizaci na novou verzi MediaWiki, aniž byste museli ručně začleňovat změny starého kódu rozšíření. Existuje několik bodů rozšíření , které vývojářům umožňují změnit nebo rozšířit možnosti MediaWiki.
Nápověda pro vývojáře rozšíření
- 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
- Jak vytvořit vzhled MediaWiki – postup jak vytvořit zobrazení pro MediaWiki.
- Skin configuration – průvodce konfigurací zobrazení pro wiki.
Nápověda pro vývojáře gadgetů
- Gadget kuchyň – průvodce vývojem uživatelských skriptů a gadgetů na wiki.
Nápověda pro vývojáře modulů
- Scribunto/Lua reference manual – dokumentace pro vývoj modulů Lua na wiki.
- Rozšíření:Scribunto – o rozšíření Scriunto.
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 .