8 php zend-framework vm-implementation
好的,所以我对PHP VM的了解比较天真,最近我一直在想.特别是,PHP中的Web应用程序的请求生命周期是什么样的.我发现了一篇文章在这里,给出了一个很好的解释,但我觉得有有将更多的故事.
根据文章的解释,每次向服务器发出请求时都会解析并执行脚本!这对我来说似乎很疯狂!
我正在尝试通过编写一个利用许多PHP 5.3/5.4功能的小型微框架来学习PHP.因此,我开始考虑静态意味着什么以及静态类变量实际存在多长时间.我希望我的应用程序可以有一个设置阶段,它能够将其结果缓存到具有静态属性的类中.但是,如果在每个请求上解析并执行整个脚本,我就无法看到如何避免为每个请求运行应用程序初始化步骤!
我真的希望我在这里缺少一些重要的东西......任何见解都是非常令人沮丧的!
根据文章的解释,每次向服务器发出请求时都会解析并执行脚本!这对我来说似乎很疯狂!
不,那篇文章是准确的.有多种方法可以缓存解析/编译的结果,但每次都会完整地执行脚本.在请求之间不保留类或静态变量的实例.从本质上讲,每个请求都会获得一个新的,前所未有的应用程序执行副本.
我没有看到如何避免为每个请求运行应用程序初始化步骤!
你不能,也不应该.您需要将应用初始化为每个请求的空白状态.您可以序列化一系列数据$_SESSION,这些数据会在请求中保留,但您不应该这样做,直到您发现实际需要这样做.
我真的希望我在这里遗漏一些重要的东西......
你好像什么都不担心.默认情况下,世界上每个PHP站点都以这种方式工作,绝大多数人都不需要担心性能问题.
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |