
Hoe je je Drupal 8-installatie (weer) aan de praat krijgt.


Basisprincipes
In Drupal 8 zijn schone URL’s standaard ingeschakeld en kunnen ze niet worden uitgeschakeld. De rewrite-module moet echter op je webserver zijn geïnstalleerd.
Controleer de adresbalk van je browser. De URL’s van je site mogen geen ?q= in het adres bevatten.
Voorbeeld van correcte «schone URL’s»
http://www.example.com/node/83
Voorbeeld van niet-werkende «schone URL’s»
http://www.example.com/?q=node/83


Deze handleiding bevat tutorials en andere informatie die je nodig hebt om modules te maken voor Drupal 8.
Andere bronnen:


Drupal 8 maakt gebruik van een reeks geavanceerde PHP-functies en complexe externe bibliotheken om externe ontwikkelaars de meest geavanceerde API te bieden van alle beschikbare CMS’en. Hoewel ervaren Drupal 7-ontwikkelaars enkele grote veranderingen zullen opmerken, blijft het grootste deel van de basisstructuur vertrouwd.


In de volgende subsecties van deze handleiding zullen we voorbeelden maken van verschillende onderdelen van een Drupal-site, zoals een aangepaste pagina, blok, entiteit, veld, enzovoort. Alle voorbeelden beginnen met de modulemap en het .info.yml-bestand, en alleen met deze twee onderdelen zal de module verschijnen op de beheerderspagina «Uitbreidingen» van Drupal 8, of kan hij direct worden geactiveerd met Drush.


Voordat je begint
Als je wilt dat PHP je helpt om fouten op een testsite te ontdekken, probeer dan de instellingen die hier worden beschreven: Alle fouten weergeven tijdens ontwikkeling.
Geef je module een naam
De eerste stap bij het maken van een module is het kiezen van een «korte naam» of machinenaam. Deze machinenaam wordt gebruikt in verschillende bestanden en functies van je module, en Drupal core gebruikt deze programmatisch om naar je module te verwijzen.


Hoofdonderwerp: projectmetadata
Het .info.yml-bestand (ook wel «info yaml-bestand» genoemd) is een belangrijk onderdeel van een module, thema of installatieprofiel in Drupal 8 voor het opslaan van metadata over het project.
Deze .info.yml-bestanden zijn vereist om:


Bij de ontwikkeling van aangepaste modules zijn er verschillende scenario’s waarin de ontwikkelaar een composer.json-bestand moet toevoegen aan zijn module. Sommige van deze scenario’s hangen ervan af of de aangepaste module bedoeld is om gedeeld te worden met de community als een project op drupal.org.
Als de moduleontwikkelaar een PHP-bibliotheek van packagist.org wil gebruiken, moet hij een composer.json-bestand aan zijn project toevoegen.


In de volgende sectie zullen we het maken van een eenvoudige module bespreken. Er bestaat een lange traditie dat het eerste programma dat je in een nieuw systeem schrijft «Hello World!» op het scherm weergeeft.
Hoewel Drupal een van de meest gedurfde en progressieve open source-projecten is, is het ook diep geworteld in de lange tradities van wetenschap en techniek.


De functie content() in de klasse HelloController zal markup-tekst retourneren wanneer het routingsysteem de pagina aanroept.
In de map van je module moet je de standaard PSR-4-mapstructuur /src/Controller hebben, en binnen die map moet je een controller-bestand HelloController.php hebben.
Dus je controller-bestand ziet er zo uit:
/src/Controller/HelloController.php
In je bestand HelloController.php staat de volgende code:
