How to become a MediaWiki hacker/cs

Tento článek je napsán, aby pomohl vývojářům naučit se základní dovednosti potřebné k tomu, aby přispěli k vývoji jádra MediaWiki a rozšíření MediaWiki. Všimněte si, že ve většině případů při práci s MediaWiki nechcete hacknout jádro MediaWiki, pokud opravdu nevíte, co děláte.

Hlavní cestou, jak začít s vývojem Wikimedie, je přispívat do projektů Wikimedie, které nabízejí mentoring. Alternativou bez mentoringu je opravit dobře první chybu.

Pokud jste zkušený vývojář, který už je obeznámen s používáním MediaWiki, navštivte místo toho .

Další způsoby, jak se zapojit do komunity Wikimedie, najdete na stránce .

Přehled
MediaWiki je software, na kterém běží Wikipedie, její sesterské projekty a tisíce dalších wiki po celém světě.

Přestože je MediaWiki napsána v PHP programovacím jazyce, některé podpůrné nástroje jsou napsány v jiných jazycích, včetně dávkových souborů, shell skriptů, makefiles a Python. Jako klientskou knihovnu JavaScript používá jQuery.

MediaWiki je primárně psána pro platformu LAMP a běží na většině operačních systémů. MediaWiki primárně používá databázové servery MySQL nebo MariaDB.

Vývoj probíhá ve stylu otevřeného zdroje. 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 probíhá na různých emailových konferencích a IRC kanálech. Hlavní seznam vývojářů je wikitech-l. Hlavní vývojářské IRC kanály jsou a.
 * Zdrojový kód je uložen na a spravován pomocí systému kontroly revizí Git a lze jej zobrazit zde
 * Recenze kódu se provádí na a lze ji zobrazit zde. Postupujte podle tohoto návodu a nastavte Git a Gerrit za účelem odesílání záplat.
 * Hlášení o chybách se ukládají a projekty jsou koordinovány na a lze je zobrazit zde

Tato stránka by vám měla pomoci stát se přispěvatelem do MediaWiki. Není to návod. Jen vás nasměruje na různá místa, kde se můžete naučit, co je potřeba.



Nastavte si vývojové prostředí
Většina projektů používá Git a Gerrit. Postupujte podle návodu Gerritu a nastavte si svůj vývojářský účet. Poté můžete přejít ke stažení našeho kódu, provádění změn, jejich testování a odesílání oprav. Existují dva způsoby, jak nastavit vývojové prostředí: Pomocí předkonfigurovaného nastavení virtuálního stroje (Docker nebo Vagrant) nebo pomocí ruční konfigurace.



Vývojové prostředí Docker

 * MediaWiki Docker – spusťte MediaWiki pomocí Dockeru (lze použít na hostitelích Linux, Windows nebo macOS). This is the recommended method.

You can also try the experimental mwcli tool which provides basic orchestration functionality for MediaWiki docker containers. 

Virtuální stroj s Vagrantem

 * Instalace Vagrant — tyto kroky nainstalují server MediaWiki se všemi požadavky uvnitř virtuálního počítače Linux (lze použít na hostitelích Linux, Windows nebo Mac).

Vagrant is a powerful tool, but it is more complex and less robust than Docker, and significantly more resource-intensive. It is mainly aimed at developers who need to set up complex, flexible environments, e.g. for testing the interaction of multiple extensions.



Ruční instalace

 * Požadavky na instalaci — zkontrolujte hardwarové požadavky a nainstalujte server LAMP, MAMP nebo WAMP (Linux, Mac nebo Windows plus Apache, MySQL/MariaDB a PHP).
 * — stáhněte si nejnovější zdrojový kód z Gitu.
 * — pokračujte v instalaci a počáteční konfiguraci.
 * Nastavte ve svém prostředí různé režimy ladění, aby se varování a chyby zobrazovaly včas.

Pro vývoj funkcí MediaWiki není nutné stahovat výpisy databáze Wikipedie. Ve skutečnosti je v mnoha případech snazší použít téměř prázdnou databázi s několika speciálně vytvořenými testovacími stránkami. Pokud však z nějakého důvodu chcete mít kopii Wikipedie, můžete získat výpis.



PHP
MediaWiki je napsána v PHP, takže se budete muset seznámit s PHP, abyste mohli hacknout jádro MediaWiki.


 * Naučte se PHP
 * Návod PHP — Dostupný v mnoha různých jazycích. Pokud nemáte žádné znalosti PHP, ale umíte programovat v jiných objektově orientovaných programovacích jazycích, PHP se snadno naučíte.
 * PHP Programming at Wikibooks.
 * PHP at Wikiversity.


 * Zdroje PHP:
 * Příručka PHP — Dostupná v mnoha různých jazycích.
 * Konvence kódování PHP v rámci komunity MediaWiki.


 * Poznání:
 * Skript  v MediaWiki poskytuje základní interpret PHP s načtenými objekty a třídami MediaWiki.
 * Skript  v MediaWiki také nahrazuje skript   založený na PsySH, viz

Databáze
Mnoho funkcí vyžaduje určité množství manipulace s databází, takže často budete muset znát MySQL/MariaDB.


 * Naučte se MySQL/MariaDB
 * Návod MySQL — Z referenční příručky MySQL.
 * MySQL at Wikibooks.


 * Zdroje MySQL/MariaDB
 * Referenční příručka MySQL — Dostupná v mnoha různých jazycích.
 * Databáze znalostí MariaDB
 * Konvence kódování databáze v rámci komunity MediaWiki.


 * Poznání:
 * Otestujte svůj kód pomocí MySQL/MariaDB.
 * MediaWiki v současné době používá MySQL a MariaDB jako primární back-end databáze. Podporuje také další DBMS, jako je PostgreSQL a SQLite. Téměř všichni vývojáři však používají MySQL/MariaDB a netestují jiné databáze, které se následně pravidelně porušují. Proto se doporučuje při testování oprav používat MySQL/MariaDB, pokud se konkrétně nesnažíte zlepšit podporu pro jinou DB. V druhém případě se ujistěte, že jste opatrní, abyste nerozbili MySQL/MariaDB (nebo v ní nepsali dotazy, které jsou strašně neefektivní), protože MySQL/MariaDB používají všichni ostatní.



JavaScript a CSS
JavaScript a CSS se staly v kódu front-endu všudypřítomné. Abyste mohli pracovat na MediaWiki, musíte znát JavaScript, jQuery a CSS, ale možná je budete potřebovat, v závislosti na tom, na čem se rozhodnete pracovat.


 * Naučte se JavaScript a CSS
 * JavaScript and CSS at Wikibooks.
 * Začínáme s jQuery — Výukový program jQuery.
 * Learning JavaScript — references and sources.


 * Zdroje JavaScriptu a CSS
 * Konvence kódování JavaScriptu v rámci komunity MediaWiki.
 * Konvence kódování CSS v rámci komunity MediaWiki.

MediaWiki
Základ kódu MediaWiki je velký a některé části jsou nevzhledné. Nenech se tím zahltit. Když začínáte, snažte se napsat funkce nebo opravit chyby, které se dotýkají pouze malé oblasti kódu.


 * Základy MediaWiki a povinné čtení:
 *  — Přehled hlavních komponent MediaWiki na vysoké úrovni a jejich vzájemné spolupráce.
 *  — Přehled toho, proč a jak psát bezpečný kód.


 * Zdroje MediaWiki:
 * — Seznam důležitých souborů a odkazy na podrobnější informace.
 * — Seznam háčků. Pokud se snažíte zjistit, která část kódové základny něco dělá, často je dobré začít hledáním souvisejících háčků.
 * — Přehled obecných konvencí kódování v rámci komunity MediaWiki.


 * Dokumentace kódu ( class reference ) — Automatically generated documentation from the code and code comments.
 * — A guide to debugging MediaWiki.
 * — A tool to interact with MediaWiki objects live.

MediaWiki extensions
If you choose to work on MediaWiki extensions code, the following links provide more information.


 * MediaWiki extensions basics:
 * Developing extensions — How to write an extension for MediaWiki.
 * Extension writing tutorial


 * MediaWiki extensions resources:
 * Best practices for extensions
 * A brief introduction to MediaWiki extension development — A video presentation about how to create a MediaWiki extension (slides).
 * Making a MediaWiki extension — Covers how to develop an extension for MediaWiki, best practices, and how to engage the MediaWiki community. From February 2011.
 * Help for extension developers on the Developer Hub



Viz též

 * Search for code across repositories
 * – When you've thoroughly read the information in this article, it's time to move on to the information in the developer hub.