How to become a MediaWiki hacker/nl

Dit artikel is geschreven om ontwikkelaars de basisvaardigheden te leren die nodig zijn bij het bijdragen aan de ontwikkeling van MediaWiki core en MediaWiki extensies.

De manier om te beginnen met Wikimedia development is het bijdragen aan Wikimedia projecten die begeleiding aan bieden. Een alternatief voor deze mentoring is het oplossen van een fout in de software, een bug.

Als u al een ervaren ontwikkelaar bent en al eigen bent met het gebruik van de MediaWiki, ga dan naar .

Voor andere manieren om in de Wikimedia community te komen: .

Overzicht
MediaWiki is de software achter Wikipedia, de zusterprojecten en duizenden wiki's overal op de wereld.

Het meeste van MediaWiki en de extensies zijn geschreven in de programmeertaal PHP. Er wordt JavaScript gebruikt voor het zorgen voor een interactieve interface met elementen als jQuery en Vue.js als cliënt JavaScript libraries.

Enkele hulpmiddelen zijn geschreven in andere talen zoals batch-bestanden, shell scripts, makefiles en Python.

MediaWiki is voornamelijk geschreven voor het LAMP platform en kan op de meeste besturingssystemen worden uitgevoerd. MediaWiki gebruikt voornamelijk de MySQL of MariaDB database server.

De ontwikkeling is in een open source stijl, het wordt grotendeels online gecoördineerd met ondersteuning van de Wikimedia Foundation, waarbij ook de vrijwillige ontwikkelaars van de gemeenschap een grote rol spelen.


 * Discussies over de ontwikkeling gebeurt op,  en IRC kanalen. De belangrijkste lijst voor ontwikkelaars is wikitech-l. Voor IRC kanalen zijn dat  en.
 * De broncode staat op en wordt met Git revisie beheerssysteem beheerd, het kan worden  bekeken
 * Het beoordelen van de code wordt via gedaan en dat kan hier worden bekeken. Volg deze tutorial om Git en Gerrit te installeren om patches te kunnen doorgeven.
 * Bugrapporten en functieverzoeken zijn aanwezig, projecten worden gecoördineerd op en kunnen hier worden bekeken



Een taak vinden of aanmaken
Voordat u ooit een functie ontwikkelt of een bug in een MediaWiki-project oplost, is het belangrijk dat u er onderzoek naar doet. Dit omvatː


 * 1)  Zoeken in Phabricator of er al een open of gesloten taak (veld Documenttypen) bestaat. Als er geen is, maak er een aan. Als het een erg kleine wijziging is, maak er dan geen aan.
 * 2) Zoek en onderzoek de code die moet worden gewijzigd om de functie te implementeren. Geef commentaar op uw bevindingen in de Phabricator-taak als ze nuttig kunnen zijn voor anderen die het implementeren of die uw wijzigingen beoordelen.
 * 3) Bepaal of u de functie waarschijnlijk kunt toevoegen of de bug kunt oplossen op basis van de code die u hebt onderzocht en de benodigde wijzigingen. Als de taak groot of complex is, moet u iets eenvoudiger vinden om u in te werken om uiteindelijk taken van die omvang aan te kunnen. Als u denkt dat u het kunt voltooien, ken de taak aan uzelf toe en begin eraan te werken.



De ontwikkelomgeving instellen
Zodra u iets heeft gevonden waar u aan kunt werken, is de volgende stap naar het ontwikkelen van MediaWiki of een extensie het maken van een omgeving om MediaWiki, de database en andere externe functies uit te voeren, zodat u ze kunt ontwikkelen en testen.

U kunt MediaWiki installeren en ontwikkelen op Linux, Windows of macOS met behulp van een van de onderstaande manieren.

Docker

 * MediaWiki Docker – MediaWiki uitvoeren via Docker.

Docker is een goede optie als u snel een MediaWiki-installatie wilt instellen en niet van plan bent veel extensies te installeren.

U kunt ook het hulpmiddel mwcli proberen die Docker instelt met een paar eenvoudige opdrachten en basisfunctionaliteit biedt tussen MediaWiki, MySQL, ElasticSearch, Memcached en andere soorten containers.

Vagrant

 * MediaWiki Vagrant – MediaWiki uitvoeren op een Linux virtuele machine met gebruik van Vagrant.

Met Vagrant kunt u een MediaWiki-instantie maken die u kunt ontwikkelen en kunt u een van de 250+ extensies toevoegen en ontwikkelen, allemaal met één opdracht.

Dit bespaart u installatie- en configuratietijd in vergelijking met het handmatig toevoegen van extensies in een Docker of lokale installatie, maar het werkt wat langzamer dan de andere twee opties.



Lokale installatie
MediaWiki kan worden ontwikkeld door het met zijn afhankelijkheden lokaal op uw systeem te installeren.

Dit kost meer tijd om op te zetten dan Docker of Vagrant.


 * 1)  — Hardwarevereisten controleren en afhankelijkheden installeren
 * 2)  — Download op Git de meest recente broncode.
 * 3)  — Ga verder met de installatie en de initiële configuratie.
 * 4) Stel de verschillende foutopsporingsmodi in uw omgeving in om waarschuwingen en fouten weer te geven.



Open een tekstverwerker voor code
De twee aanbevolen code-editors voor het bewerken van MediaWiki zijn VSCode en PhpStorm. VSCode is gratis en PhpStorm niet, maar u kunt gratis een PhpStorm-licentie verkrijgen als u een student bent door uw GitHub Education-account te koppelen aan uw JetBrains-account of door het aanvragen van een licentie verleend aan Wikimedia.

Om te bepalen welke editor u moet installeren en gebruiken, weet dat er voor PhpStorm meer en krachtigere functies zijn dan voor VSCode. PhpStorm duurt echter langer om te laden bij het starten dan VSCode, omdat het een index van de hele repository bouwt, terwijl VSCode progressief laadt. Daarom is VSCode meestal handig voor het bekijken van bestanden of kleine wijzigingen en PhpStorm voor grotere wijzigingen. Het is logisch om beide om deze redenen te installeren.

Om de MediaWiki-codebase te ontwikkelen die zich in een Docker-container bevindt, kunt u er een externe verbinding mee tot stand brengen en de MediaWiki-map erin openen met behulp van VSCode of PhpStorm.



Code aanpassen en testen
Wijzig de code en bekijk uw wijzigingen door uw MediaWiki-browsertabblad opnieuw te laden. Zorg ervoor dat u volgt. Schrijf en voer tests uit op uw code om ervoor te zorgen dat deze werkt en correct is geformatteerd.

Houd er rekening mee dat u tijd kunt besparen door ervoor te zorgen dat uw wijzigingen worden geaccepteerd voordat u de tijd neemt om tests te schrijven. Maak een patch zonder de benodigde tests en vraag iemand om deze te beoordelen en geef aan dat u tests zult toevoegen nadat ze deze hebben beoordeeld.



Een patch maken
Tot slot, om uw code in te dienen om te worden beoordeeld en toegevoegd aan de repository, volg de.



PHP
MediaWiki is in PHP geschreven, u dient daar dus in thuis te zijn om hier te kunnen programmeren.


 * Leer PHP
 * PHP tutorial — Beschikbaar in veel verschillende talen. Als u niet thuis bent in PHP maar wel in andere object-geörienteerde programmeertalen, dan zal PHP eenvoudig te leren zijn.
 * PHP Programmeren op Wikibooks.
 * PHP op Wikiversity.


 * PHP bronnen:
 * De PHP handleiding — Beschikbaar in veel verschillende talen.
 * PHP codering conventies binnen de MediaWiki gemeenschap.


 * Dingen om te weten:
 * Het script   in MediaWiki biedt een basis PHP-interpreter met geladen MediaWiki objecten en klassen.
 * Het script  in MediaWiki is een vervanging van   op basis van PsySH, zie

Database
Veel functies vereisen wat databasemanipulatie, dus u moet bekend zijn met MySQL / MariaDB.


 * Leer MySQL/MariaDB
 * MySQL tutorial — Uit de MySQL referentie handleiding.
 * MySQL op Wikibooks.


 * MySQL/MariaDB resources
 * MySQL Referentie handleiding — Beschikbaar in veel verschillende talen.
 * MariaDB Knowledge Base
 * Database codeer conventies binnen de MediaWiki-gemeenschap.


 * Dingen om te weten:
 * Test uw code met MySQL/MariaDB.
 * MediaWiki gebruikt nu MySQL en MariaDB als databases. Er worden ook andere databases ondersteund zoals PostgreSQL en SQLite. Bijna alle ontwikkelaars gebruiken echter MySQL/MariaDB en testen geen andere databases, bij andere kunnen dus eerder fouten optreden. U wordt daarom geadviseerd om MySQL / MariaDB te gebruiken bij het testen van patches, tenzij u specifiek probeert de ondersteuning voor een andere database te verbeteren. Zorg er in het laatste geval voor dat u ervoor zorgt dat u MySQL / MariaDB niet breekt (of query's schrijft die er vreselijk inefficiënt in zijn), omdat MySQL / MariaDB door bijna iedereen wordt gebruikt.



JavaScript en CSS
JavaScript en CSS worden in de front-end code veel gebruikt. U hoeft niet bekend te zijn met JavaScript, jQuery en CSS om aan de MediaWiki te werken, maar een gebrek aan kennis daarvan kan wel beperken waar u aan kan werken.


 * Leer JavaScript en CSS
 * JavaScript en CSS op Wikibooks.
 * Beginnen met jQuery — Een jQuery tutorial.
 * JavaScript leren — referenties en code.


 * JavaScript en CSS code
 * JavaScript codeer conventies binnen de MediaWiki-gemeenschap.
 * CSS codering conventies binnen de MediaWiki gemeenschap.

MediaWiki
De hoeveelheid code van MediaWiki is groot, sommige delen zijn wat rommelig en onoverzichtelijk, het zal wel werken. Wanneer u voor het eerst begint met coderen op de MediaWiki, probeer dan functies te schrijven of bugs op te lossen die slechts een klein gebied van de code raken.


 * MediaWiki basisdocumentatie:
 *  — Een overzicht op hoofdlijnen van de hoofdcomponenten van MediaWiki en hoe die bij elkaar horen.
 *  — Het schrijven van veilige code.


 * MediaWiki bronnen:
 * — Een overzicht met belangrijke bestanden en koppelingen naar meer gedetailleerde informatie.
 * — Een lijst met 'hooks'. Als u probeert te vinden welk deel van de codebase iets doet, is vaak een goede plek om te beginnen door te zoeken naar de beschikbare hooks (plekken waar u code kunt toevoegen binnen de bestaande code).
 * — Algemene codering conventies binnen de MediaWiki gemeenschap.


 * Code documentatie (class referentie) — Automatisch gegenereerde documentatie op basis van de code en het commentaar van de programmeur in de code.
 * — Het debuggen van de MediaWiki.
 * — Een hulpmiddel om bij het gebruik van de MediaWiki de objecten te benaderen en o.a. uit te lezen.



MediaWiki extensies
Als u ervoor kiest om aan een extensie van MediaWiki te werken, bieden de volgende koppelingen meer informatie.


 * MediaWiki extensies basis:
 * Extensies ontwikkelen — Het schrijven van een extensie voor MediaWiki.
 * Tutorial voor het schrijven van een extensie


 * MediaWiki extensies bronnenː
 * 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. Van februari 2011.
 * Help for extension developers on the Developer Hub

MediaWiki skins
is helpful if you choose to work on MediaWiki skins.



Zie ook

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