Beim Betrachten der Drupal.org-API habe ich festgestellt, dass hook_init () für Drupal 8 nicht dokumentiert ist. Als ich die Änderungsdatensätze betrachtete, stellte ich fest , dass keine Bootstrap-Hooks mehr vorhanden sind , was darauf hinweist, dass alle Bootstrap-Hooks entfernt werden , an denen sich die Bootstrap-Hooks befinden sollen sein hook_boot()
und hook_exit()
; es wird nichts darüber gesagt hook_init()
.
Ich habe in der Drupal 8-Quelle nach hook_init gesucht und den folgenden Code gefunden. Der erste ist ein Verweis auf hook_init()
einen Kommentar; Die anderen beiden scheinen eine hook_init()
Implementierung zu sein, aber beide erhalten einen Parameter, den ich nicht erwarte.
function overlay_enable() {
if (strpos(current_path(), 'admin/modules') === 0) {
// Flag for a redirect to <front>#overlay=admin/modules on hook_init().
$_SESSION['overlay_enable_redirect'] = 1;
}
}
/**
* Implements hook_init().
*/
function phptemplate_init($template) {
$file = dirname($template->filename) . '/' . $template->name . '.theme';
if (file_exists($file)) {
include_once DRUPAL_ROOT . '/' . $file;
}
}
/**
* Implements hook_init().
*/
function twig_init($template) {
$file = dirname($template->filename) . '/' . $template->name . '.theme';
if (file_exists($file)) {
include_once DRUPAL_ROOT . '/' . $file;
}
}
Ich habe auch nach einer Funktion gesucht, die aufgerufen wurde, hook_init()
aber keine gefunden.
Wird hook_init()
noch in Drupal 8 verwendet? Wie konvertiere ich die Implementierung von Drupal 7-Code, wenn es nicht mehr verwendet wird hook_init()
?
hook_page_attachments
oderhook_page_attachments_alter
.Ja,
hook_init()
wird in Drupal 8 nicht verwendet Wenn Siedrupal_add_js()
oderdrupal_add_css()
Sie verwenden können ,hook_page_build()
statt ( Anmerkung : dieser Haken in Drupal 8.0.0-beta3 siehe entfernt Änderungsdatensatz ), die für den in Drupal 7 ist auch nützlich.Beispielsweise können CSS-Stile und JavaScript-Code zur
hook_page_build()
Verwendung hinzugefügt werden$page['#attached']
.Wenn Sie die Anforderung / Antwort dort komplexer abhören müssen , können Sie einen Kernel-Ereignis-Listener im Drupal 8-Stil definieren, wie in hook_init () dokumentiert dokumentiert .
quelle
drupal_process_attached
verwendet auch drupal_add_css / js, um die Seitenanforderungen in hinzuzufügencall_user_func('drupal_add_' . $type, $data, $options);
drupal_process_attached
ausgelöst, nachdem der Render-Cache abgerufen wurde. Wenn Sie dies tun,#attached
wird Ihr CSS / JS hinzugefügt, auch wenn der Render-Cache verwendet wird.hook_page_build () wurde für veraltet hook_page_attachments () Akte wechseln hier .
Beispiel:
Bibliotheksname ist der Name der Bibliothek, der in der Datei mymodule.libraries.yml Ihres Moduls definiert ist
quelle