Drupal è sviluppato in PHP e utilizza la normale sintassi sia procedurale che orientata agli oggetti del linguaggio. A queste regole aggiunge alcune convenzioni relative ai nomi, ai namespace e alla posizione dei file.
Regole sulla nomenclatura
Supponendo di stare creando un modulo chiamato Nome Modulo nella cartella modules/custom/nome_modulo/:
| Forma | Esempio | Utilizzo |
|---|---|---|
| Nome leggibile | Nome Modulo | Titoli, etichette e testi mostrati nell'interfaccia |
| Machine name | nome_modulo | Directory, file, namespace, hook e identificatori |
| PascalCase | NomeModulo | Nomi di classi, interfacce e trait quando contengono il nome del modulo (non è necessario che la classe contenga sempre il nome del modulo dato che viene usato il namespace di base Drupal\nome_modulo ) |
| Nome con trattini | nome-modulo | Nomi dei file Twig derivati da identificatori contenenti underscore |
All'interno della cartella modules/custom/nome_modulo possono esserci files e cartelle. I nomi dei files sono sempre composti dal machine name e un'estensione che indica il contenuto e la funzione del file:
- nome_modulo.info.yml
- nome_modulo.module
- nome_modulo.install
- nome_modulo.routing.yml
- nome_modulo.services.yml
- nome_modulo.permissions.yml
- nome_modulo.links.menu.yml
- nome_modulo.libraries.yml
La cartella modules/custom/nome_modulo contiene le cartelle:
- config/
- templates/
- tests/
- src/
La cartella templates contiene i files di template Twig, per i quali il carattere underscore viene convertito in trattino, quindi un possibile nome di file è modules/custom/nome_modulo/templates/nome-modulo-forecast.html.twig.
All'interno della cartella modules/custom/nome_modulo/src/ si trova il codice OOP, tipicamente le cartelle:
- Controller/
- Form/
- Plugin/
- Hook/
- EventSubscriber/
Ad esempio nella cartella modules/custom/nome_modulo/src/Form potremo avere la classe SettingsForm dove il namespace sarà Drupal\nome_modulo\Form.