How to become a MediaWiki hacker/de


 * Andere Möglichkeiten, um sich in der MediaWiki Gemeinde zu engagieren, finden Sie unter Wie kann man beitragen.

Dieser Artikel soll noch unerfahrenen Entwicklern helfen, die notwendigen Fähigkeiten zu erwerben, um zur MediaWiki-Entwicklung beitragen zu können.

Wenn Sie ein erfahrener Entwickler sind, besuchen Sie stattdessen das Entwicklerzentrum.

Überblick
MediaWiki ist die Software, welche Wikipedia, ihre Schwesterprojekte und Tausende von Wikis in der ganzen Welt antreibt. Es läuft auf den meisten Betriebssystemen, ist in PHP geschrieben, nutzt in erster Linie die MySQL-Datenbank-Server und verwendet jQuery als Client Javascript-Bibliothek. Die Entwicklung von MediaWiki wird in erster Linie von der Wikimedia Foundation unterstützt, obwohl Freiwillige Community-Entwicklern eine große Rolle spielen.

Diese Seite soll Ihnen helfen, auf dem Weg zu einem Beitrag zu MediaWiki loszulegen. Es ist kein Lernprogramm, es sind nur Punkte, die Sie zu verschiedenen Orten führen, wo man hingehen kann, um das zu lernen was notwendig ist.

PHP
MediaWiki ist in PHP geschrieben. Sie werden sich mit PHP vertraut machen müssen, um MediaWiki’s Kernstück mitentwickeln zu können.


 * Lernen Sie PHP
 * PHP Lernprogramm — Erhältlich in vielen verschiedenen Sprachen. Wenn Sie keine PHP-Kenntnisse haben, aber wissen, wie man in anderen objektorientierten Programmiersprachen programmiert, wird PHP für Sie leicht zu erlernen sein.
 * PHP-Programmierung auf Wikibooks.


 * PHP Ressourcen:
 * Das PHP-Handbuch — Erhältlich in vielen verschiedenen Sprachen.
 * PHP Programmierungskonventionen innerhalb der MediaWiki-Gemeinde.


 * Nützliches Material:
 * Das Skript maintenance/eval.php in MediaWiki bietet einen grundlegenden PHP-Interpreter mit geladenen MediaWiki-Objekten und -Klassen.

Datenbank
Viele Funktionen erfordern gewisse Datenbank-Manipulationen, für die Sie mit MySQL vertraut sein müssen.


 * Lernen Sie MySQL
 * MySQL Lernprogramm — Aus dem MySQL 5.0 Referenzhandbuch.
 * MySQL auf Wikibooks.


 * MySQL Ressourcen
 * MySQL Referenzhandbücher — Erhältlich in vielen verschiedenen Sprachen.
 * Datenbank Programmierungskonventionen innerhalb der MediaWiki-Gemeinde.


 * Nützliches Material:
 * Testen Sie Ihren Code mit MySQL.
 * MediaWiki verwendet derzeit MySQL als primäres Datenbank-Backend. Es unterstützt auch andere DBMS wie PostgreSQL und SQLite. Allerdings nutzen fast alle Entwickler MySQL und testen nicht für andere DBMS, die folglich regelmäßig nicht wie gewünscht funktionieren. Ihnen wird deshalb empfohlen, MySQL zu verwenden, indem Sie Patches prüfen, es sei denn, dass Sie gezielt versuchen, die Unterstützung für ein anderes DBMS zu verbessern. In diesem Fall sollten Sie sicherstellen, dass Ihr Code trotzdem auch auf MySQL funktioniert (und keine Abfragen programmieren, die dort besonders ineffizient sind), da MySQL das ist, was die meisten anderen verwenden.

JavaScript und CSS
JavaScript und CSS sind allgegenwärtig im Front-End-Code geworden. Sie müssen nicht mit JavaScript, jQuery und CSS vertraut sein, um an MediaWiki zu arbeiten, aber Sie könnten es brauchen, abhängig davon, woran Sie beschließen zu arbeiten.


 * Lernen Sie JavaScript und CSS
 * JavaScript und CSS auf Wikibooks.
 * Getting Started with jQuery — Ein jQuery Lernprogramm.


 * JavaScript und CSS Ressourcen
 * JavaScript Programmierungskonventionen innerhalb der MediaWiki Gemeinde.
 * CSS Programmierungskonventionen innerhalb der MediaWiki Gemeinde.

MediaWiki
Die MediaWiki-Codebasis ist groß und unschön, seien Sie nicht von ihr überwältigt. Wenn Sie gerade angefangen haben, zielen Sie darauf, Funktionen zu schreiben oder Fehler zu beheben, die in einem kleinen Bereich des Codes eingeschränkt sind.


 * MediaWiki Lesebücher und was-man-lesen-muß:
 * MediaWiki Architektur — Eine hochrangiger Überblick über die wichtigsten Komponenten von MediaWiki und wie sie miteinander arbeiten.
 * Sicherheit für Entwickler — Ein Überblick darüber, warum und wie man sicheren Code schreibt.


 * MediaWiki Ressourcen:
 * Handbuch:Code — Eine Liste von wichtigen Dateien und Links zu weiteren detaillierten Informationen.
 * Handbuch:Programmierungskonventionen — Ein Überblick über die allgemeinen Programmierungskonventionen in der MediaWiki Gemeinschaft.
 * Einführung-zu-MediaWiki Seminarprogramm — Wege um MediaWiki zu entwickeln, von Benutzer-Einstellungen, Erweiterungen und Kern.
 * Vollständige Dokumentation (Warnung: riesige Seite) — Automatisch generierte Dokumentation aus dem Code und den Code-Kommentaren.
 * Wie man debuggt — Eine Anleitung zur Fehlersuche in MediaWiki.
 * eval.php — Ein Werkzeug um mit MediaWiki Objekten direkt zu interagieren.

Richten Sie Ihre Umgebung ein

 * Installationsanforderungen — Überprüfen Sie die Hardwareanforderungen und installieren Sie einen LAMP-, MAMP- oder WAMP-Server (Linux, Mac oder Windows, plus Apache, MySQL und PHP).
 * Download von Git — Laden Sie den aktuellsten Quellcode von Git herunter.
 * Installationsanleitung — Fahren Sie mit der Installation und Erstkonfiguration fort.
 * Richten Sie die verschiedenen Debug-Modi in Ihrer Umgebung ein, um Warnungen und Fehler frühzeitig anzuzeigen.

Es ist nicht notwendig, Wikipedia-Datenbank-Dumps herunterzuladen, um MediaWiki-Funktionen zu entwickeln. In vielen Fällen ist es sogar einfacher, eine fast leere Datenbank mit ein paar speziell gestalteten Testseiten zu verwenden. Wenn Sie aber aus irgendeinem Grund eine Kopie der Wikipedia haben wollen, können Sie einen Dump erhalten.

Erste Schritte
Die beiden wichtigsten Wege, um mit der MediaWiki Entwicklung loszulegen, sind lästige kleine Fehler in den bestehenden Code zu beheben, oder um eine neue Funktion hinzuzufügen, in der Regel durch eine MediaWiki-Erweiterung.


 * MediaWiki Erweiterungen-Lesebücher:
 * Erweiterungen entwickeln — Wie man eine Erweiterung für MediaWiki schreibt.
 * Eine Erweiterung für den Einsatz schreiben — Wenn Sie Ihre Erweiterung auf Wikimedia-Seiten (einschließlich eventuell Wikipedia) einsetzen wollen, ist eine zusätzliche Kontrolle in Bezug auf Leistung und Sicherheit gewährleistet.
 * Lernprogramm zum schreiben von Erweiterungen


 * MediaWiki Erweiterungen-Ressourcen:
 * Eine Liste von einfachen Erweiterungen — Ein einfacher Weg damit vertraut zu werden, wie Erweiterungen funktionieren.
 * Eine kurze Einführung in die MediaWiki Erweiterungs-Entwicklung — Eine Video-Präsentation darüber, wie man eine MediaWiki-Erweiterung erstellt (Dias).
 * Einen MediaWiki-Erweiterung erstellen — Es beschreibt, wie man eine Erweiterung für MediaWiki entwickelt, beste Praktiken und wie man die MediaWiki Gemeinschaft dazu engagiert. Aus Februar 2011.
 * Spezialseitenvorlage — Fügt eine Spezialseite hinzu, um einige nützliche Informationen anzuzeigen.
 * Wiki-Markup erweitern — Fügt einen Parser-Hook hinzu, um den Inhalt des Wikitextes zu ändern.

Senden Sie Ihre Änderungen
MediaWiki Projekte werden in Git-Repositorien gehostet und Code-Beiträge erfolgen durch das Gerrit-Review-Tool. Überprüfen Sie die kurze TL;DR-Anleitung oder die weitere erklärende Git Arbeitsablauf-Beschreibung um zu lernen, wie man mit Git für MediaWiki Entwicklung arbeitet.

Wir pflegten zu akzeptieren, Patches an Bugzilla berichtet, aber einer solchen Praxis wird derzeit abgeraten.

Befolgen Sie diese Schritte:


 * 1) Bekommen Sie Entwickler-Zugang, wenn Sie ihn nicht bereits haben.
 * 2) Nehmen Sie Ihre Änderungen in einer Niederlassung in Git vor (siehe Git/Arbeitsablauf).
 * 3) Überprüfen Sie Ihren Code gegen die vor-übergabe Checkliste. Lassen Sie diesen Schritt nicht aus ; Sie werden glücklich sein, dass Sie es nicht taten.
 * 4) Reichen Sie Ihre Änderung an Gerrit ein (siehe Git/Arbeitsablauf).
 * 5) Senden Sie einen Link zu Ihrer Gerrit Changeset im entsprechenden Fehlerbericht in Bugzilla mit , und markieren Sie es mit dem   und   Stichworten.
 * Fühlen Sie sich frei, den Bugmeister anzupingen, wenn Sie sehen, dass Ihr Patch nicht für die Überprüfung gestoßen wurde. Dies kann ein langsamerer Prozess sein als gerade das Stoßen davon selbst, aber indem Sie es einmal oder zweimal tun, demonstrieren Sie Ihren guten Glauben, und Ihre Fähigkeit, vernünftig stabilen Code zu schreiben.
 * 1) Bitten Sie um Ihren nachzuprüfenden Code, achten Sie auf E-Mail-Updates, und stellen Sie beantragte Änderungen.

Diskutieren und Hilfe bekommen
MediaWiki hat eine sehr freundliche, große und vielfältige Gemeinschaft. Es gibt mehrere Orte, um Hilfe zu erhalten. Wenn Sie bereits eine Idee für eine Eigenschaft haben, die Sie umsetzen wollen, ist es auch eine gute Idee, mit einem älteren Entwickler zu sprechen, bevor Sie beginnen, wenn Sie nicht sicher sind, wie Ihre Eigenschaft andere Teile des Codes beeinflussen wird.


 * IRC — Insbesondere, der Kanal. Die MediaWiki-Entwickler-Gemeinschaft ist auf der ganzen Welt verteilt, und es ist wahrscheinlich jemand wach, egal was Ihre Zeitzone ist. Springen Sie rein und beginnen zu sprechen.
 * Mailing-Listen — Da Sie danach suchen ein Entwickler zu sein, ist wikitech-l, wo Sie sein sollten. Sie können auch die Archive durchsuchen, um ein Gefühl dessen zu bekommen, wie die Gemeinschaft funktioniert.

Siehe auch

 * Entwicklungspolitik
 * "Lernen Sie wie man MediaWiki entwickelt" Seminar
 * Entwicklerzentrum – Wenn Sie gründlich die Informationen in diesem Artikel gelesen haben, ist es Zeit sich auf die Informationen im Entwicklerzentrum hinzubewegen.
 * |MediaWiki virtuelle Bibliothek (MVL) Bücher; diese Seite ist auch Teil des MediaWiki MediaWiki Entwicklerhandbuch.

Weiterführendes

 * Die Wikipedia-Code Webseite enthält allgemeine Informationen über die Entwicklung.
 * Die Wikipedia SourceForge Projektseite erlaubt es ihnen, denCode zu betrachten und Fehler zu melden. Beachten Sie, dass wir nichtSourceForge'sPatch Tracker verwenden. Sie können alternativ die Adresse http://cvs.defau.lt benutzen. Dort wird durch eine spezielle Technik die aktuelle Entwickler-Codeversion mehrere Stunden früher bereitgestellt als auf der Seite von Sourceforge (Sourceforge verzögert "Browse-CVS" Zugriffe).
 * Mailinglisten: wikitech-l für Entwicklung, mediawiki-l für Unterstützung,mediawiki-cvs für CVS-Bekanntgaben
 * MediaWiki Architektur weitere Dokumentation!