博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZenFramework中的View对象初始化流程
阅读量:4080 次
发布时间:2019-05-25

本文共 844 字,大约阅读时间需要 2 分钟。

默认情况下没有使用layout,发现在Bootstarp中始终无法拿到View对象,使用GetResoure的方法,这个方法也是网上一般搜索到的方法,但是我这里打印就是null,今天装好Debug环境,仔细跟踪了下,上截图说事吧:

1:首先从index.php进入,调用Application的run方法

2:application其实是调用的Bootstarp的run方法

3:Front控制器进入dispatch(之前做了很多工作,比如加载插件助手和经纪人助手,这块需要大家仔细了解下)

4:进入分发,这个才是重头戏,之前根据路由找到了对应的路径,然后分发器接着提取到模块名,类名,方法名等(也可能是通过配置文件提取的,也可能额根据路由提取的)

5:找到对应的类之后,要实例化这个类,执行对应的action了。在实例化这个类的时候调用构造函数

6:构造函数中有对经纪人助手的实例化(ViewRender是注册在经纪人助手中的)

7:对经纪人助手实例化,调用构造函数

8:构造函数中调用Viewrender的init方法,init方法内调用initView方法。。这个时候算是实例化了view对象。。

9:接着调用action的自己定义的init方法(这个没截图进去)

10:所以在action的init中是可以拿到view对象的,通过$this->view即可

11:由于这个地方没看到bootstrat的一系列_init的调用所以暂时看不出来时候可以在bootstrat的_initxx方法中提取到这个对象。。

PS1:

下午继续看源代码,在Action的基类中也有对view的初始化,通过对这个方法的引用我看到,是在Action的render中调用了这个方法。这个初始化时直接new出来的Zend_View。传入的参数是baseUrl。这就和上面说的也不冲突,上面的实例化是在经理人助手中,我们知道我们可以显式的不让经纪人助手来拿到ViewRender的,这个也就是干这个用的吧。

转载地址:http://pmini.baihongyu.com/

你可能感兴趣的文章
xorg.conf的编写
查看>>
启用SELinux时遇到的问题
查看>>
virbr0 虚拟网卡卸载方法
查看>>
No devices detected. Fatal server error: no screens found
查看>>
新版本的linux如何生成xorg.conf
查看>>
virbr0 虚拟网卡卸载方法
查看>>
Centos 6.0_x86-64 终于成功安装官方显卡驱动
查看>>
Linux基础教程:CentOS卸载KDE桌面
查看>>
db sql montior
查看>>
read humor_campus
查看>>
IBM WebSphere Commerce Analyzer
查看>>
Unix + OS IBM Aix FTP / wu-ftp / proftp
查看>>
my read work
查看>>
db db2 base / instance database tablespace container
查看>>
hd disk / disk raid / disk io / iops / iostat / iowait / iotop / iometer
查看>>
project ASP.NET
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
OS + Unix Aix telnet
查看>>
IBM Lotus
查看>>
Linux +Win LAMPP Tools XAMPP 1.7.3 / 5.6.3
查看>>