日期:2014-05-17  浏览次数:20439 次

使用ZF的话,等于每次都要load zf的mvc框架,这样岂非很浪费
抱歉,以前都是搞J2EE,刚刚接触PHP,有些东西不是太理解。

因为PHP不能算是在Container中运行的let,所以,它保持的对象的生命周期与request一致,即使是session那也是靠序列话、化到持久层的文件中实现的。
这个理解对不对?
所以,不像J2EE中,在整个Container的生命周期中,对于框架的配置可以只需要读取一次(类似application.ini),对框架的总控对象也可以只生成一次(类似Zend_Application),而在PHP中,则每次请求都必须全部初始化一次。

这样难道不会带来效率问题么?尤其是对于ZF这样的框架来说,肯定比不用框架的PHP要慢一些吧?
还是大家知道有什么别的配置方法,能够使得上述的过程只执行一遍?

------解决方案--------------------
你还说不理解,你理解得很透彻 :)

这个PHP就是这样设计的,所以没有很彻底的办法.... 
也正因为就是这么设计的,所以这个问题对效率影响也不是想象的那么严重...
(也许php在某些情况下的表现不如J2EE原因也在此)

具体的了解应该要到zend engine里找,不过手册上这里以空白为主 :(
http://www.php.net/manual/en/internals2.php

有些cache库可以一定程度上改善, 参见 http://www.php.net/manual/en/refs.basic.php.php

现在好像也有些实验性的PHP变种是企图模仿J2EE那样的

------解决方案--------------------
完全正确

正因为这样,php 才可以搭接在任何一款 web 服务器上
任何改善 php 运行机制的企图都将缩减 php 的适用范围