How to become a MediaWiki hacker/de

Dieser Artikel wurde geschrieben, um Entwickler zu helfen, die notwendigen Fähigkeiten zu erwerben, für die Entwicklung des MediaWiki-Kerns und MediaWiki-Erweiterungen.
 * In den meisten Fällen bei der Arbeit mit MediaWiki, willst du den MediaWiki-Kern nicht hacken, es sei denn, du weißt wirklich, was du tust.

The main path to get started with Wikimedia development is to contribute to Wikimedia projects that offer mentoring. An alternative without mentoring is to fix a good first bug.

Wenn Sie ein erfahrener Entwickler mit MediaWiki-Erfahrung sind, besuchen Sie stattdessen .

Andere Möglichkeiten, um sich in der Wikimedia-Gemeinschaft zu engagieren, siehe .

Überblick
MediaWiki ist die Software, welche die Wikipedia, ihre Schwesterprojekte und Tausende von Wikis in der ganzen Welt antreibt.

MediaWiki ist in PHP programmiert. Es wird die jQuery-JavaScript-Bibliothek eingesetzt.

MediaWiki is primarily written for the LAMP platform and runs on most operating systems. MediaWiki benutzt hauptsächlich MySQL- oder MariaDB-Datenbanken.

Die Entwicklung geschieht im Stile von open source. Dies wird größtenteils online koordiniert und von der Wikimedia-Foundation unterstützt, freiwillige Entwickler tragen jedoch ebenfalls einen großen Teil bei.

Die allgemeine Mailingliste der Entwickler ist wikitech-l. The main developer IRC channels are #mediawiki and #wikimedia-dev.
 * Development discussion happens on various mailing lists and IRC channels.
 * Source code is managed using the Git revision control system.
 * Code-Durchsichten werden auf durchgeführt. Follow this tutorial to set up Git and Gerrit in order to submit patches.
 * Fehler-Meldungen und Aufgaben werden auf Phabricator verwaltet.

Diese Seite soll Ihnen zeigen, wie man sich am besten in das Projekt MediaWiki einbringen kann. Dies ist kein Lernprogramm, sondern nur eine Liste einiger Punkte, die Sie zu verschiedenen Orten führen, zu denen man hingehen kann, um das zu lernen, was notwendig ist.

Set up your development environment
Registrieren Sie sich zuallererst für $dev und lesen Sie das Tutorial von Gerrit  durch, bevor Sie mit dem Runterladen, Testen und Einreichen von Patches beginnen. Danach können Sie fortfahren, um Code herunterzuladen, Änderungen vorzunehmen, diese zu testen und Patches einzureichen. Es stehen Ihnen zwei Möglichkeiten zur Verfügung, um eine Entwicklungsumgebung aufzusetzen: Entweder verwenden Sie eine vorkonfigurierte virtuelle Maschine (Vagrant) oder Sie setzen sich die Entwicklungsumgebung selbstständig auf.

Virtuelle Maschine mit Vagrant

 * Installation von Vagrant - Mit diesen Schritten installieren Sie einen MediaWiki Server auf einer Linux VM, welche unter Linux, Windows oder Mac OS verwendet werden kann

Docker development environment

 * MediaWiki Docker – Führe MediaWiki aus mit Docker (kann auf Linux, Windows oder macOS als Hauptrechner genutzt werden).

Manuelle Installation

 * Installationsvorausetzungen - Überprüfen Sie bitte zuerst die Handwarevoraussetzungen und installieren Sie dann einen LAMP, MAMP oder WAMP Server (Linux, Mac oder Windows, inklusive Apache, MySQL/MariaDB und PHP).


 * - Laden Sie sich den aktuellsten Quellcode von Git herunter.
 * - Setzen Sie dann die Installation und die Erstkonfiguration fort.
 * Aktivieren Sie frühzeitig die verschiedenen Debug Varianten in Ihrer Umgebung, um auf Warnungen und Fehler früher aufmerksam gemacht zu werden.

Es ist nicht notwendig, irgendwelche Wikipedia Datenbank Auszüge zu generieren, um MediaWiki Features zu erstellen. Eigentlich reicht es vollkommen, eine fast leere Datenbank mit einigen speziellen Testseiten zu verwenden. Falls doch der Fall der Fälle eintrifft, können Sie sich jederzeit einen Wikipedia Datenbank Auszug runterladen.

PHP
MediaWiki ist in PHP geschrieben. Daher müssen Sie sich mit PHP vertraut machen, um am Kerncode von MediaWiki zu hacken.


 * PHP lernen
 * PHP-Anleitung — Erhältlich in vielen verschiedenen Sprachen. Wenn Sie kein Wissen über PHP haben, aber in anderen objektorientierten Programmiersprachen programieren können, wird PHP für Sie einfach zu erlernen sein.
 * PHP Programming at Wikibooks.
 * PHP topic at Wikiversity.


 * Quellen zu PHP:
 * Das PHP Handbuch — Erhältlich in vielen verschiedenen Sprachen.
 * PHP-Programmier-Konventionen in der MediaWiki-Community.


 * Wissenswertes:
 * Das Script  in MediaWiki stellt einen grundlegenden PHP Interpreter bereit, in dem MediaWiki Objekte und Klassen bereits geladen sind.
 * Also, the script  in MediaWiki is a replacement of   based on PsySH, see Manual:Shell.php.

Datenbank
Viele Funktionen benötigen einiges an Datenbank-Änderungen. Daher wird es häufig notwendig sein, dass Sie mit MySQL/MariaDB vertraut sind.


 * Lernen Sie MySQL/MariaDB
 * MySQL Anleitung — Aus dem ReferenzhandbuchMySQL 5.0.
 * MySQL at Wikibooks.


 * MySQL/MariaDB Ressourcen
 * MySQL Referenzhandbücher — Erhältlich in vielen verschiedenen Sprachen.
 * MariaDB Wissensbasis
 * Datenbank-Programmier-Konventionen in der MediaWiki-Community.


 * Wissenswertes:
 * Testen Sie Ihren Code mit MySQL/MariaDB.
 * MediaWiki nutzt aktuell MySQL und MariaDB als hauptsächliches Datenbank-Backend. Es unterstützt auch andere Datenbanksysteme, wie beispielsweise PostgreSQL und SQLite. Allerdings nutzen fast alle Entwickler MySQL/MariaDB und testen nicht mit anderen Datenbanken. Dadurch kommte es regelmäßig dazu, dass diese nicht mehr richtig funktionieren. Es ist daher empfehlenswert, MySQL/MariaDB zu nutzen, wenn man Korrekturen (Patches) testet, es sei denn, Sie versuchen eben, die Unterstützung einer anderen Datenbank zu verbessern. Stellen Sie in diesem Fall sicher, dass Sie MySQL/MariaDB nicht kaputt machen (oder Abfragen schreiben, die schrecklich ineffizient sind), denn MySQL/MariaDB wird von allen anderen genutzt.

JavaScript and CSS
JavaScript und CSS sind im Frontend Code allgegenwärtig geworden. Sie müssen nicht mit JavaScript, jQuery und CSS vertraut sein, um an MediaWiki zu arbeiten, aber es ist möglicherweise notwendig, je nachdem, an was Sie arbeiten wollen.


 * JavaScript and CSS lernen
 * JavaScript and CSS at Wikibooks.
 * Erste Schritte mit jQuery — Eine jQuery Anleitung.
 * Learning JavaScript — references and sources.


 * Quellen zu JavaScript und CSS
 * JavaScript-Programmier-Konventionen in der MediaWiki-Community.
 * CSS_Programmier-Konventionen in der MediaWiki-Community.

MediaWiki
Die MediaWiki-Codebasis ist groß und einige Bereiche sind hässlich; seien Sie nicht von ihr überwältigt. Wenn noch am Anfang sind, zielen Sie darauf ab, Funktionen schreiben oder Fehler zu beheben, die auf einen kleinen Bereich des Codes beschränkt sind.


 * MediaWiki Überblicksartikel und Pflichtlektüre:
 *  — Eine Überblick aus der Vogelperspektive über die Hauptkomponenten von MediaWiki und wie diese zusammenarbeiten.
 *  — Ein Überblick darüber, warum und wie man sicheren Code schreibt.


 * Quellen zu MediaWiki:
 * — Eine Liste der wichtigen Dateien und Links zu weiteren Informationen.
 * — Eine Liste von Hooks. Wenn Sie versuchen, herauszufinden, welcher Teil des Codes etwas bestimmtes tut, ist es häufig ein guter Ausgangspunkt, nach den entsprechenden Hooks zu suchen.
 * — Ein Überblick über die allgemeinen Konventionen zum Programmierstil innerhalb der MediaWiki Community.


 * Code Dokumentation ( class reference ) — Automatisch aus dem Code und den Codekommentaren erstellte Dokumentation.
 * — Eine Anleitung für das Beheben von Fehlern in MediaWiki.
 * — Ein Werkzeug, um live mit MediaWiki Objekten zu interagieren.

An Erweiterungen arbeiten
Wenn Sie am Code von MediaWiki Erweiterungen arbeiten wollen, bieten die folgenden Links weitergehende Information.


 * Überblicksartikel für MediaWiki-Erweiterungen
 * Erweiterungen entwickeln — Wie man eine Erweiterung für MediaWiki schreibt.
 * Anleitung zum Schreiben von Erweiterungen


 * Quellen zu MediaWiki Erweiterungen:
 * Best practices für Erweiterungen
 * Eine kurze Einführung in die Erweiterungsentwicklung für MediaWiki — Eine Videopräsentation darüber, wie man eine MediaWiki Erweiterung erstellt (Folien).
 * Eine MediaWiki Erweiterung bauen — Behandelt, wie man eine Erweiterung für MediaWiki entwickelt, bewährte Vorgehensweisen und wie man sich mit der MediaWiki Community bekannt macht. Von Februar 2011.
 * Help for extension developers on the Developer Hub

Siehe auch

 * Search for code across repositories
 * – Wenn Sie die Informationen in diesem Artikel gründlich gelesen haben, ist es an der Zeit, weiter zu den Informationen im Entwickler-Zentrum zu gehen.
 * – a collection of related pages