他是利用插件控制器实现的
http://document.thinkphp.cn/manual_3_2/addon_controller.html
其原理是用 \Think\Hook 去初始化和调用其它的类的方法。
http://document.thinkphp.cn/manual_3_2.html#behavior_extend
钩子在工作的时候,如果不 extends \Think\Controller 那么它怎么去生成HTML?
好吧,它就应该是一个混编。
一般情况下,都会再使用TP里面的模板渲染,可问题在于这个。
这是我简单的一个小测试,两个钩子
!---- s
<f1>
Behavior\BuildLiteBehavior
Common\Behavior\InitHookBehavior
Behavior\ReadHtmlCacheBehavior
Behavior\WriteHtmlCacheBehavior
Behavior\ParseTemplateBehavior
</f1>
<f2>
CollectionResume
Addons\Collection\CollectionAddon
Behavior\WriteHtmlCacheBehavior
Behavior\ParseTemplateBehavior
asdas
调用hook数据1
</f2>
<f3>
AdminIndex
Addons\EditorForAdmin\EditorForAdminAddon
Behavior\WriteHtmlCacheBehavior
Behavior\ParseTemplateBehavior
Addons\SiteStat\SiteStatAddon
Behavior\WriteHtmlCacheBehavior
Behavior\ParseTemplateBehavior
</f3>
e------!
结论得出
Behavior\WriteHtmlCacheBehavior
Behavior\ParseTemplateBehavior
这两个流程出现了很多次,包袱很重。
如果开发人员开发扩展插件不需要依赖于TP原有的一些类或驱动的话,那也太难了。结论,少用呗
最佳答案
