Ontwikkelaars hub
Dit is een overzicht in grote lijnen van de MediaWiki ontwikkeling, inclusief links naar de belangrijkste beschikbare documenten, bronnen en hulpmiddelen voor de MediaWiki ontwikkelaars. Het is geschreven voor getrainde LAMP ontwikkelaars die ervaring hebben met het gebruik van MediaWiki.
- Als u de Wikimedia web API's wilt gebruiken, bezoek het portaal voor ontwikkelaars.
- Als u mee wilt werken aan de ontwikkeling van de Wikimedia software: New Developers .
- Voor een introductie handleiding voor het ontwikkelen van MediaWiki en de MediaWiki extensies: Meewerken aan de MediaWiki en Extensies .
- Als u wilt samenwerken met andere externe MediaWiki-gebruikers, er is een gebruikersgroep MediaWiki Stakeholders' Group (MSStake) die bestaat uit MediaWiki-ontwikkelaars, systeembeheerders, gebruikers, consultants en hostingproviders.
Overzicht
MediaWiki is de software achter Wikipedia, de zusterprojecten en duizenden wiki's overal op de wereld.
MediaWiki is geschreven in de programmeertaal PHP.[1] Het gebruikt jQuery als de client JavaScript bibliotheek.
MediaWiki is voornamelijk geschreven voor het LAMP platform[2] en kan op de meeste besturingssystemen worden uitgevoerd. MediaWiki gebruikt voornamelijk de MySQL en MariaDB database servers.[3]
De ontwikkeling is in een open source stijl[4], het wordt grotendeels online gecoördineerd met ondersteuning van de Wikimedia Foundation, waarbij ook de vrijwilliger ontwikkelaars van de gemeenschap een grote rol spelen.
- Discussies over de ontwikkeling gebeurt op verschillende mailinglijsten en IRC kanalen. De belangrijkste zijn wikitech-l (lijst) en #mediawiki verbinden (IRC).
- De broncode wordt beheerd in het Git versie controle systeem.[5]
- De Code review wordt voor de meeste projecten gedaan met Gerrit . Het instellen van Git en Gerrit is in deze Tutorial beschreven, dit om patches te kunnen verzenden.
- Bug rapoorten en taken worden voor de meeste projecten beheerd in Phabricator .
- Ontwikkelaars die de code van MediaWikicode uitbreiden of via een interface gebruiken en dus niet de core code aanpassen hebben meerder gemakkelijke aanknooppunten, zoals de API, het Hooks systeem en de Skins, een overzicht hiervan staat in deze sectie.
Belangrijke documenten
Code, ontwikkeling en stijl
- Development policy – een overzicht van het ontwikkelbeleid.
- Codeer conventies – schrijf code op de MediaWiki manier.
- Security for developers – zorg ervoor dat de MediaWiki veilig blijft.
- Manual:Pre-commit checklist – een checklist die u kunt doornemen voordat u code schrijft die voor de gemeenschap is.
- Code review – een handleiding bij het beoordelen van code die gecommit is.
- Technical Decision Making Process – het proces bij het doorvoeren van grote technische wijzigingen.
Debuggen en testen
- Hoe te debuggen – Handleiding voor het debuggen van MediaWiki.
- Manual:Errors and symptoms – een overzicht met gebruikelijke MediaWiki fouten met hun symptomen.
- Testen webbrowser – het leren schrijven van gebruikerstesten voor MediaWiki met gebruik van Selenium.
- Unittesten – het schrijven met PHPUnit van een unittest voor MediaWiki.
- API integratie testen – het leren schrijven van API integratietesten voor MediaWiki met gebruik van Mocha.
- Security for developers – Het leren schrijven van veilige code.
Architectuur
- MediaWiki architecture – een introductie tot de MediaWiki architectuur.
- Manual:Code – een overzicht van de belangrijkste onderdelen van de MediaWiki broncode.
- Manual:Database layout – een overzicht van de MediaWiki database-schema's.
- Manual:Global object variables – een lijst met een aantal belangrijke globale variabelen.
- Localisation/nl – het MediaWiki internationalisatie systeem.
- Handleiding namespace op deze wiki, documentatie voor ontwikkelaars.
- MediaWiki Class Referentie – technische documentatie aangemaakt uit de MediaWiki broncode. (NB: Het laden van deze grote pagina duurt even.)
Subsystemen
- API - externe API voor de directe toegang tot gegevens.
- ContentHandler – Het framework van MediaWiki voor het ondersteunen van aangepaste types van pagina-inhoud.
- Database toegang – een overzicht van het gebruiken van databases in MediaWiki, inclusief een korte handleiding over de database abstractie laag.
- Job queue – MediaWiki's framework voor het asynchroon verwerken van langlopende taken.
- Messages API – MediaWiki's framework voor het leveren van vertaalde applicatie berichten met PHP of JavaScript.
MediaWiki uitbreiden
MediaWiki is zo gemaakt dat het wijzigingen toelaat zonder de "kerncode" te wijzigen. Dit maakt het makkelijk om bij te werken naar een nieuwe versie van MediaWiki zonder handmatig te moeten samenvoegen met oude codewijzigingen. Er zijn een aantal belangrijke uitbreidingspunten die ontwikkelaars toelaten om functies toe te voegen aan MediaWiki of om bestaande functies te wijzigen. De uitbreidingspunten zijn:
- API – toegang tot de gegevens en metadata van MediaWiki met de web API.
- Hooks – Iets doen elke keer dat "X" gebeurt...
- Parserfuncties – Een nieuw commando maken als:
{{#if:...|...|...}}
. - Skins – De vormgeving en het uiterlijk van MediaWiki wijzigen.
- Speciale pagina's – Een nieuwe speciale pagina toevoegen.
- Tag extensions – Een nieuwe tag maken als:
<newtag>...</newtag>
. - Extending wiki markup – Voegt een parser hook toe voor het wijzigen van de inhoud van wikitext.
Hulp voor schrijvers van uitbreidingen
- Handleiding: Extensies ontwikkelen – een handleiding voor het ontwikkelen van extensies.
- Extensions FAQ
- Een lijst extensies: Category:Extensions/nl .
- Extension:BoilerPlate - een leeg extensie sjabloon.
Hulp voor skin ontwikkelaars
- Handleiding:Vormgeving (skin) – instructies over hoe een skin te maken.
- Handleiding:Skin instellingen – een handleiding voor het instellen van skins voor een wiki.
Hulp het het hergebruiken van code in de blibliotheek
- Manual:Developing libraries – een handleiding voor het 'packaging'van bibliotheken van derden voor gebruik in MediaWiki
Voetnoten
- ↑ Niet alles is geschreven in PHP. Enkele hulpmiddelen zijn geschreven in andere talen, inclusief batchbestanden, shell scripts, makefiles en Python.
- ↑ MediaWiki kan op de meeste platformen die PHP ondersteunen werken, het gebrek aan bepaalde utilities of functies in het besturingssysteem kan de functionaliteit of performance van MediaWiki op niet-LAMP platforms beperken.
- ↑ MediaWiki heeft ondersteuning voor andere DBMS dan MySQL en MariaDB, inclusief PostgreSQL en SQLite.
- ↑ De ontwikkelaars zijn vrijwilligers en betaalde staf (of ingehuurde krachten) van verschillende organisaties. In Developers/nl staat een lijst van mensen die aan de code werken.
- ↑ Bekijk de broncode en revisies van code repositories in Gerrit of download de broncode met gebruik van Gerrit .