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 topic 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 Manual:Shell.php

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 5.0.
 * 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.
 * — A list of hooks. If you're trying to find what part of the codebase does something, often a good place to start is by searching for the related hooks.
 * — An overview of general coding conventions within the MediaWiki community.


 * Code documentation ( 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

Zobacz też

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