Ich bin neu in Namespaces und übe mit Drupal 8. Ich habe ein benutzerdefiniertes Modul erstellt und den Contrib, Devel, installiert.
In meinem Modul habe ich einen Block definiert. Hier ist mein Code:
Namespace Drupal \ twitter_pull \ Plugin \ Block; benutze Drupal \ block \ BlockBase; / ** * Bietet einen Block zum Ausführen von PHP-Code. * * * @Block( * id = "twitter_pull_tweets_block", * admin_label = @Translation ("Twitter Tweets") *) * / Klasse TweetsBlock erweitert BlockBase { / ** * Erstellt das renderbare Array für dieses Block-Plugin und gibt es zurück. * * * @return Array * Ein renderbares Array, das den Inhalt des Blocks darstellt. * * * @see \ Drupal \ block \ BlockViewBuilder * / öffentliche Funktion build () { dpm (Array ('this', 'is', 'a', 'test')); return 'das ist ein Block'; }} }}
und es funktioniert gut. Was ich aber nicht verstehe ist: Warum habe ich Zugriff auf die Entwicklungsfunktionen? Wo füge ich in meinen Code den Namespace für devel ein, auf den ich Zugriff auf dpm () haben soll?
Drupal\my_module\SomeClass
in/path/to/my_module/src/SomeClass.php
, zum Beispiel). Für Klassen, die nicht automatisch durch Anmerkungen entdeckt werden (wie Plugins), müssen sie theoretisch überhaupt keinen Namespace haben. PHP / Drupal würde sich nicht darum kümmern, solange die Klassennamen innerhalb des globalen Raums eindeutig sind. Natürlich ist es schlecht, den globalen Raum zu verschmutzen, und die Modularisierung des eigenen Codes ist immer eine gute Sache. Verwenden Sie ihn daher immer für Klassen ...