render 函数小分析

1 判断有没有权限来渲染或者是否是已经打印过了
2 是否可以从cache读取
3 如果有#markup但没有#type, 则赋值#type为markup
4 如果有#type但没有加载默认项目, 则加载默认项
5 运行#pre_render函数,参数为整个element
6 初始化$elements['#children']
7 如果有#theme则运行theme函数
8 如果没有#theme且#children为空 则去drupal_render child element
-- 这里得出一个结论, child element和#theme貌似是相互矛盾的 有一个就没有另一个
-- #theme和children element最后得出的结论都是#children
9 运行#theme_wrapper
10 运行#post_render
11 加载附带的css/js
12 suffix和prefix一起来包含#children所代表的字符串
13 设置cache
14 设置为打印过

---

原文地址:https://www.cnblogs.com/qinqiu/p/5019777.html