Di Drupal 7 saya dapat memiliki modul di dalam modul lain. Apakah ini masih terjadi di Drupal 8 dan bagaimana saya akan namespace kelas di dalam sub modul?
Hal lain yang dapat saya lakukan di Drupal 7 adalah membuat sub folder di dalam folder modules untuk mengelompokkan modul-modul saya.
Contoh:
situs
--- / semua
--- / --- / modul
--- / --- / --- / Collection_Alpha
--- / --- / --- / --- / module_a
--- / - - / --- / --- / module_b
--- / --- / --- / Collection_Beta
--- / --- / --- / --- / module_x
--- / --- / --- / --- / module_y
Apakah ini masih mungkin di Drupal 8? Jika ya, bagaimana saya harus namespace kelas saya sehingga autoloader dapat menyelesaikannya ke struktur folder yang benar?
misal: Drupal \ Collection_Alpha \ module_a \ myClass1?
Drupal\my_module
di 'my_module / src', sub modul akanDrupal\my_submodule
di 'my_module / modules / my_submodule / src', dan seterusnyaJawaban:
@Clive benar.
Namespace selalu
Drupal\{module_name}
. Di mana modul itu hidup tidak relevan (selama itu di suatu tempat di mana Drupal dapat menemukannya). Namespace itu selalu menunjuk$path_to_module/src
.Itu tidak mungkin bekerja dengan cara lain. Situs yang berbeda memiliki modul dalam struktur dan tempat yang berbeda, tetapi kode yang sama harus berfungsi di mana pun.
sumber
\Drupal
konsisten. Namun pertanyaan yang menarik, saya mendorong Anda untuk mengajukannya sebagai pertanyaan terpisah. Bahkan jika tidak, saya mungkin akan :)Namespaces didasarkan pada PSR-4 autoload, periksa spesifikasi http://www.php-fig.org/psr/psr-4 .
Jika Anda ingin sub-modul, Anda dapat menggunakan struktur folder berikutnya. d8:
Namespace untuk "my_module":
Namespace untuk "my_sub_module":
Drupal\my_sub_module\Controller\B
Lihat ruang nama PSR-4 dan autoloading di Drupal 8 untuk informasi lebih lanjut.
sumber