No Drupal 7, posso ter um módulo dentro de outro módulo. Esse ainda é o caso no Drupal 8 e como eu classificaria as classes de namespace dentro do submódulo?
Outra coisa que posso fazer no Drupal 7 é criar subpastas dentro da pasta modules para agrupar meus módulos.
Exemplo:
sites
--- / todos
--- / --- / modules
--- / --- / --- / Collection_Alpha
--- / --- / --- / --- / module_a
--- / - - / --- / --- / module_b
--- / --- / --- / Collection_Beta
--- / --- / --- / --- / module_x
--- / --- / --- / --- / module_y
Isso ainda é possível no Drupal 8? Em caso afirmativo, como eu precisaria colocar um namespace em minhas classes para que o carregador automático possa resolvê-lo na estrutura de pastas correta?
por exemplo: Drupal \ Collection_Alpha \ module_a \ myClass1?
Drupal\my_module
em 'my_module / src', o submódulo estaráDrupal\my_submodule
em 'my_module / modules / my_submodule / src' e assim por dianteRespostas:
@Clive está correto.
O espaço para nome é sempre
Drupal\{module_name}
. Onde esse módulo vive é irrelevante (desde que seja em algum lugar onde o Drupal possa encontrá-lo). Esse espaço para nome sempre aponta para$path_to_module/src
.Possivelmente não funcionaria de nenhuma outra maneira. Sites diferentes têm módulos em uma estrutura diferente e em lugares diferentes, mas o mesmo código deve funcionar, não importa onde.
fonte
\Drupal
de coerência. Porém, pergunta interessante, no entanto, encorajo você a fazer uma pergunta separada. De fato, se você não tiver, eu provavelmente o farei :)Os espaços para nome são baseados no carregamento automático do PSR-4, verifique a especificação http://www.php-fig.org/psr/psr-4 .
Se você deseja submódulos, você pode usar a próxima estrutura de pastas. d8:
O espaço para nome do "my_module":
O espaço para nome do "my_sub_module":
Drupal\my_sub_module\Controller\B
Consulte PSP-4 namespaces e carregamento automático no Drupal 8 para obter mais informações.
fonte