Naamgevings- en plaatsingsregels voor je Drupal 8-module
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.
Er zijn een paar belangrijke regels die je moet volgen bij het kiezen van een machinenaam:
- Het moet beginnen met een letter.
- Het mag alleen kleine letters en underscores bevatten.
- Het mag geen spaties bevatten.
- Het moet uniek zijn. Je module mag niet dezelfde korte naam hebben als een andere module, thema of installatieprofiel dat je op de site gebruikt.
- Het mag geen gereserveerde termen bevatten:
src
,lib
,vendor
,assets
,css
,files
,images
,js
,misc
,templates
,includes
,fixtures
,Drupal
In dit voorbeeld kiezen we «hello_world» als machinenaam.
Belangrijke opmerking: gebruik geen hoofdletters in de machinenaam van je module, aangezien Drupal je hook-implementaties niet zal herkennen. Zie Inzicht in het hooksysteem voor Drupal-modules.
Maak een map voor je module
Aangezien we de machinenaam «hello_world» hebben gekozen, begin je de module door een map te maken in je Drupal-installatie op het pad: /modules/custom/hello_world of /sites/all/modules/hello_world. Je kunt de submap /custom weglaten en je module rechtstreeks in /modules/hello_world plaatsen, maar het is vaak handig om een aparte map te hebben voor je eigen modules, zodat je ze niet hoeft te zoeken tussen andere modules die je van Drupal.org hebt gedownload.
Let op: het is niet verplicht om dezelfde naam te gebruiken voor de map van je module als de machinenaam. Je kunt bijvoorbeeld de mapnaam HelloWorld gebruiken. Je moet er echter voor zorgen dat je in de code en bestandsnamen van je module consequent de machinenaam gebruikt.
In eerdere versies van Drupal moesten aangepaste modules worden geplaatst in /sites/all/modules, omdat de core-modules zich in /modules bevonden. In Drupal 8 is /modules echter vrijgemaakt voor je aangepaste en bijgevoegde modules. Alle core-modules en bibliotheekbestanden bevinden zich nu in de map /core. In Drupal 8 kun je nog steeds de Drupal 7/6-best practices volgen en je aangepaste en van Drupal.org gedownloade modules plaatsen in /sites/all/modules, maar je kunt ze ook gewoon in de map /modules plaatsen — dit heeft hetzelfde effect.
Ons voorbeeldmodule werkt nog niet; eerst hebben we een .info.yml-bestand nodig. Lees meer over hoe je Drupal 8 op de hoogte stelt van je module met een .info.yml-bestand. We zullen de module later in de handleiding activeren.
Codeerstandaarden
We raden ten zeerste aan om de Drupal codeerstandaarden te volgen bij het schrijven van je eigen aangepaste modules. Dit is een vereiste voor alle bijdragen aan de Drupal core en wordt ook aanbevolen voor code die wordt gehost op drupal.org.