Dans Drupal 7, je peux avoir un module dans un autre module. Est-ce toujours le cas dans Drupal 8 et comment pourrais-je nommer des classes d'espaces à l'intérieur du sous-module?
Une autre chose que je peux faire dans Drupal 7 est de créer des sous-dossiers dans le dossier modules pour regrouper mes modules.
Exemple:
sites
--- / tous
--- / --- / modules
--- / --- / --- / Collection_Alpha
--- / --- / --- / --- / module_a
--- / - - / --- / --- / module_b
--- / --- / --- / Collection_Beta
--- / --- / --- / --- / module_x
--- / --- / --- / --- / module_y
Est-ce toujours possible dans Drupal 8? Si oui, comment devrais-je nommer mes classes pour que l'autochargeur puisse le résoudre dans la bonne structure de dossiers?
par exemple: Drupal \ Collection_Alpha \ module_a \ myClass1?
Drupal\my_module
dans 'mon_module / src', le sous-module seraDrupal\my_submodule
dans 'mon_module / modules / mon_submodule / src', et ainsi de suiteRéponses:
@Clive est correct.
L'espace de noms est toujours
Drupal\{module_name}
. L'endroit où ce module réside n'est pas pertinent (tant qu'il est quelque part où Drupal peut le trouver). Cet espace de noms pointe toujours vers$path_to_module/src
.Cela ne fonctionnerait pas autrement. Différents sites ont des modules dans une structure et des endroits différents, mais le même code doit fonctionner, peu importe où.
la source
\Drupal
pour des raisons de cohérence. Mais une question intéressante néanmoins, je vous encourage à la poser comme une question distincte. En fait, si vous ne le faites pas, je le ferai probablement :)Les espaces de noms sont basés sur le chargement automatique PSR-4, vérifiez les spécifications http://www.php-fig.org/psr/psr-4 .
Si vous voulez des sous-modules, vous pouvez utiliser la structure de dossiers suivante. d8:
L'espace de noms pour le "my_module":
L'espace de noms pour le "my_sub_module":
Drupal\my_sub_module\Controller\B
Voir Espaces de noms PSR-4 et chargement automatique dans Drupal 8 pour plus d'informations.
la source