最简单的理解就是调用的次序不用,_prepro...的在前,_pro...的在后。
共同点就是都会对页面输出产生影响。
在实际应用当中,可能是需求原因吧,我基本上都是使用_pre...
幽灵说的对,就是执行顺序的差别。
我也一般在开发中也不用hook_process,大多只用hook_preprocess来处理和修改变量。
也可以参考这里有Drupal官方网站上的theme函数的执行顺序,详细说了drupal的各个函数的执行以及处理方式。
https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme/7
PS:不过drupal的theme这些函数确实挺多的,比较难以理解。个人建议还是简单的处理比较好,不要用太多process函数,因为每一个theme函数都会调用这个,其一效率低下,其二逻辑处理程序到处飞,维护和修改都是很大的麻烦。
个人建议,仅供参考!
用途不同
preprocess目的是向variables里添加或修改变量
process目的是对variables变量做处理,从而得出新的变量
比如通过preprocess,各个模块可以添加自己class到classes_array,然后通过process将classes_array处理成classes
从核心的执行流程上看
process在preprocess之后执行,所以有机会在所有模块执行了preprocess之后对$variables做一些操作。
思路上和hook然后再hook_alter是类似的。