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.

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.


 * 1) Skonfiguruj swoje środowisko programistyczne

You can install and develop MediaWiki on Linux, Windows, or macOS using any of the three solutions below.

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.

Środowisko programistyczne Dockera

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

Generally this method is recommanded, and it's come with the MediaWiki repository. However, it can be very slow on Windows if you are using WSL2 based engine, due to the poor performance of its shared directory implementation. You can switch to the Hyper-V backend on the setting of Docker Desktop for better filesystem performance.

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

Maszyna wirtualna z Vagrantem

 * MediaWiki Vagrant – Run MediaWiki on a Linux virtual machine using Vagrant.

Vagrant allows you start a MediaWiki instance you can develop as well as allowing you to add and develop any of 250+ extensions - all with a single command. This saves you installation and configuration time compared to manually installing but has the downside of running slower. You may also experience shared directory performance issues if you are using VirtualBox.



Ręczna instalacja
MediaWiki can be developed by installing it natively on your system and editing its code. Installing it natively means it will run the fastest, but will take more time to configure than Docker or Vagrant.


 * 1)  — Check hardware requirements and install dependencies
 * 2)  — Pobierz najnowszy kod źródłowy z Git.
 * 3)  — Kontynuuj instalację i wstępną konfigurację.
 * 4) * Skonfiguruj różne tryby debugowania w swoim środowisku, aby wcześnie wyświetlać ostrzeżenia i błędy.



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.