How to become a MediaWiki hacker/pl

Ten artykuł został napisany, aby pomóc programistom nauczyć się podstawowych umiejętności potrzebnych do współtworzenia MediaWiki core i rozszerzeń MediaWiki. Zwróć uwagę, że w większości przypadków podczas pracy z MediaWiki nie chcesz dłubać w rdzeniu MediaWiki, chyba że naprawdę wiesz, co robisz.

Główną ścieżką do rozpoczęcia rozwoju Wikimedia jest przyczynianie się do projektów Wikimedia, które oferują mentoring. Alternatywą bez mentoringu jest naprawienie pierwszego błędu.

Jeśli jesteś doświadczonym programistą, który jest już zaznajomiony z używaniem MediaWiki, zamiast tego odwiedź .

Aby poznać inne sposoby zaangażowania się w społeczność Wikimedia, zobacz .

Przegląd
MediaWiki to oprogramowanie, które obsługuje Wikipedię, jej siostrzane projekty i tysiące wiki na całym świecie.

MediaWiki jest napisane w języku programowania PHP. Używa jako biblioteki JavaScript klienta.

MediaWiki jest głównie napisane dla platformy LAMP i działa na większości systemów operacyjnych. MediaWiki wykorzystuje przede wszystkim serwery baz danych MySQL i MariaDB.

Oprogramowanie MediaWiki jest rozwijane na licencji open source. Rozwój koordynowany jest online i wspierany przez Wikimedia Foundation, ale dużą rolę pełnią też wolontariusze.


 * Dyskusja na temat rozwoju odbywa się na listach mailingowych oraz na kanale IRC. Główna lista programistów to wikitech-l. Główne kanały IRC dla deweloperów to 1 i 2 dolary.
 * Kod źródłowy jest zarządzany za pomocą systemu kontroli wersji Git i można go wyświetlić tutaj
 * Przegląd kodu jest wykonywany na i można go obejrzeć tutaj. Postępuj zgodnie z tym samouczkiem, aby skonfigurować Gita i Gerrita w celu przesyłania poprawek.
 * Raporty o błędach i zadania są zarządzane za i można je przeglądać tutaj

Ta strona powinna pomóc ci zostać współtwórcą MediaWiki. To nie jest samouczek; po prostu wskazuje ci różne miejsca, w których możesz się uczyć wszystkiego, co jest konieczne.

Większość projektów używa Git i Gerrit. Postępuj zgodnie z Samouczek Gerrita, aby skonfigurować konto programisty. Następnie możesz przejść do pobierania naszego kodu, wprowadzania zmian, testowania ich i przesyłania poprawek. Istnieją dwa sposoby skonfigurowania środowiska programistycznego: przy użyciu wstępnie skonfigurowanej konfiguracji maszyny wirtualnej (Docker lub Vagrant) lub ręcznej konfiguracji.
 * 1) Skonfiguruj swoje środowisko programistyczne

Środowisko programistyczne Dockera

 * MediaWiki Docker – Uruchom MediaWiki za pomocą Docker (może być używany w systemach gospodarza Linux, Windows lub macOS). This is the recommended method.

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

Maszyna wirtualna z Vagrantem

 * Instalacja Vagrant — Te kroki zainstalują serwer MediaWiki ze wszystkimi wymaganiami na maszynie wirtualnej z systemem Linux (może być używany na hostach z systemem Linux, Windows lub 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.

Ręczna instalacja

 * Wymagania instalacyjne — Sprawdź wymagania sprzętowe i zainstaluj serwer LAMP, MAMP lub WAMP (Linux, Mac lub Windows, a także Apache, MySQL/MariaDB i PHP).
 * — Pobierz najnowszy kod źródłowy z Git.
 * — Kontynuuj instalację i wstępną konfigurację.
 * Skonfiguruj różne tryby debugowania w swoim środowisku, aby wcześnie wyświetlać ostrzeżenia i błędy.

Nie ma potrzeby pobierania zrzutów bazy danych Wikipedii w celu rozwijania funkcji MediaWiki. W rzeczywistości w wielu przypadkach łatwiej jest użyć prawie pustej bazy danych z kilkoma specjalnie spreparowanymi stronami testowymi. Jeśli jednak z jakiegoś powodu chcesz mieć kopię Wikipedii, możesz uzyskać zrzut.

PHP
MediaWiki jest napisane w PHP, więc musisz zapoznać się z PHP, aby pracować z rdzeniem MediaWiki.


 * Naucz się PHP
 * Samouczek PHP — Dostępny w wielu różnych językach. Jeśli nie znasz języka PHP, ale wiesz, jak programować w innych obiektowych językach programowania, PHP będzie dla Ciebie łatwe do nauczenia.
 * PHP Programming at Wikibooks.
 * PHP at Wikiversity.


 * Zasoby PHP:
 * Podręcznik PHP — Dostępny w wielu różnych językach.
 * Konwencje kodowania PHP w społeczności MediaWiki.


 * Warto wiedzieć:
 * Skrypt  w MediaWiki zapewnia podstawowy interpreter PHP z załadowanymi obiektami i klasami MediaWiki.
 * Ponadto skrypt  w MediaWiki jest zamiennikiem   opartym na PsySH, zobacz

Baza danych
Wiele funkcji wymaga pewnej manipulacji bazą danych, więc często będziesz musiał znać MySQL/MariaDB.


 * Naucz się MySQL/MariaDB
 * Samouczek MySQL — Z podręcznika MySQL.
 * MySQL at Wikibooks.


 * Zasoby MySQL/MariaDB
 * Instrukcje obsługi MySQL — Dostępny w wielu różnych językach.
 * Baza wiedzy MariaDB
 * Konwencje kodowania bazy danych w społeczności MediaWiki.


 * Warto wiedzieć:
 * Przetestuj swój kod za pomocą MySQL/MariaDB.
 * MediaWiki używa obecnie MySQL i MariaDB jako podstawowego zaplecza bazy danych. Obsługuje również inne systemy baz danych, takie jak PostgreSQL i SQLite. Jednak prawie wszyscy programiści używają MySQL/MariaDB i nie testują innych baz danych, które w konsekwencji regularnie się psują. Dlatego zaleca się używanie MySQL/MariaDB podczas testowania łatek, chyba że specjalnie próbujesz poprawić obsługę innej bazy danych. W tym drugim przypadku upewnij się, że uważasz, aby nie zepsuć działania w MySQL/MariaDB (lub nie pisać zapytań, które są w nim strasznie nieefektywne), ponieważ MySQL/MariaDB jest tym, czego używają wszyscy inni.

JavaScript i CSS
JavaScript i CSS stały się wszechobecne w kodzie front-endowym. Nie musisz być zaznajomiony z JavaScript, jQuery i CSS, aby pracować na MediaWiki, ale może być to konieczne - w zależności od tego, nad czym zdecydujesz się pracować.


 * Naucz się JavaScript i CSS
 * JavaScript and CSS at Wikibooks.
 * Pierwsze kroki z jQuery — Samouczek jQuery.
 * Learning JavaScript — references and sources.


 * Zasoby JavaScript i CSS
 * Konwencje kodowania JavaScript w społeczności MediaWiki.
 * Konwencje kodowania CSS w społeczności MediaWiki.

MediaWiki
Baza kodu MediaWiki jest duża, a niektóre części są obrzydliwe - nie daj się tym przytłoczyć. Kiedy zaczynasz, staraj się napisać funkcje lub naprawić błędy, które dotykają tylko małego obszaru kodu.


 * Podstawy MediaWiki i niezbędne lektury:
 *  — Ogólny przegląd głównych komponentów MediaWiki i ich wzajemnej współpracy.
 *  — Omówienie dlaczego i jak pisać bezpieczny kod.


 * Zasoby MediaWiki:
 * — Lista ważnych plików i linki do bardziej szczegółowych informacji.
 * — Lista zaczepów (ang. hooks). Jeśli próbujesz znaleźć część kodu, która coś robi, często dobrym miejscem do rozpoczęcia jest wyszukanie powiązanych zaczepów.
 * — Przegląd ogólnych konwencji kodowania w społeczności MediaWiki.


 * Dokumentacja kodu (definicja klas) — Automatycznie generowana dokumentacja na podstawie kodu oraz komentarzy do kodu.
 * — Przewodnik debugowania MediaWiki.
 * — Narzędzie do interakcji z obiektami MediaWiki na żywo.

Rozszerzenia MediaWiki
Jeśli zdecydujesz się pracować nad kodem rozszerzeń MediaWiki, poniższe łącza zawierają więcej informacji.


 * Podstawy rozszerzeń MediaWiki:
 * Developing extensions — Jak napisać rozszerzenie dla MediaWiki.
 * Samouczek pisania rozszerzeń


 * Zasoby rozszerzeń MediaWiki:
 * Sprawdzone metody dotyczące rozszerzeń
 * Krótkie wprowadzenie do rozwoju rozszerzenia MediaWiki — Prezentacja wideo na temat tworzenia rozszerzenia MediaWiki ([slajdy https://wikimania2011.wikimedia.org/wiki/File:Wikimania_2011-_A_brief_introduction_to_MediaWiki_extension_development.pdf]).
 * Making a MediaWiki extension — opisuje, jak opracować rozszerzenie dla MediaWiki, najlepsze praktyki i jak zaangażować społeczność MediaWiki. Od lutego 2011.
 * Pomoc dla programistów rozszerzeń w Centrum programistów

Zobacz też

 * Wyszukaj kod w repozytoriach
 * – Po dokładnym przeczytaniu informacji zawartych w tym artykule nadszedł czas, aby przejść do informacji w centrum deweloperów.