我在模块中有hook_init
,只需要在特定页面上执行。
目前,每个页面加载都会执行hook_init
。
问题:
hook_init
正确的继续进行方式吗?hook_init
然后验证网页的网址。根据比赛我可以执行我的条件吗?答案 0 :(得分:0)
我尽量避免使用hook_init或boot。 这些钩子在所有页面上执行,对我来说,即使是路径掩码匹配也是一种性能上的痛苦。
如果要将java脚本或css添加到页面,使用hook_init或boot是错误的。
hook_init不在缓存页面上执行。要添加资产,请实现hook_page_build并使用#attached
属性添加它们。
要初始化模板中可用的变量,请实现预处理挂钩。
我不是说hook_init很糟糕。许多模块使用该钩子添加其资产。但是从Drupal 7开始,几乎所有东西都是可渲染的数组,并且可以被修改,直到它达到最后阶段,你可以改变,调整变量等。