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.

Some supporting tools are written in other languages, including batch files, shell scripts, makefiles and Python.

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.

Główna lista programistów to wikitech-l. Główne kanały IRC dla deweloperów to 1 i 2 dolary.
 * Dyskusja na temat rozwoju odbywa się na |listach mailingowych oraz |na kanale IRC.
 * 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


 * 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).

You can also try the experimental mwcli tool which sets up Docker with a few simple commands and provides basic orchestration functionality between MediaWiki, ElasticSearch, Memcache, and other types of containers.

If you run it from Windows, Docker shares files between your Windows filesystem and the container filesystem. This can cause MediaWiki to be very slow if you are using WSL2 based engine, due to the poor performance of its shared directory implementation. If you have Windows Pro, you can switch to the Hyper-V backend in the settings of Docker Desktop for better filesystem performance.

An even faster way to run MediaWiki using Docker in Windows (speeds comparable to manually installing) is to clone MediaWiki and run Docker inside WSL (or install and run  inside of WSL). That way there is no shared filesystem overhead. To develop the MediaWiki codebase that is inside the Docker container you can establish a remote connection to it and open the MediaWiki WSL folder in that is in the container using VSCode or PhpStorm.

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. It runs faster than Docker on Windows, however slower than Docker on WSL or manually installing.



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 faster than Docker or Vagrant, but it will take more time to configure.


 * 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

MediaWiki skins
Manual:How to make a MediaWiki skin is helpful if you choose to work on MediaWiki skins.



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.