在PHP中有许多框架,它们都具有前端控制器或条目脚本或应用程序的概念。基本上所有这些都意味着在浏览器的Http请求中,创建了一个应用程序实例(类似于Zend框架,Zend_Application的实例和Yii中的Yii :: createWebApplication),每个应用程序实例进一步初始化不同的组件(嵌套属性对象),如控制器对象,数据库对象,视图对象(主要是控制器对象的子属性对象),请求和响应对象等。
我希望现在很清楚。它在每个MVC框架中都必须相同:)无论使用什么语言
我很想知道的是,每当用户点击浏览器按钮或链接并创建HTTP请求或AJAX请求时,是否创建了此应用程序实例(以及其嵌套的子对象)?
我认为Java应用程序实例在整个请求中都是持久的,也许我错了:)
它是否在PHP中持久化,如果不是,有什么限制?
感谢您的关注
答案 0 :(得分:0)
在库存PHP中,每个请求都会重建和/或重新加载所有内容。可能存在PHP的修改版本(或与状态服务器服务或其他东西对话的第三方扩展),可以将应用程序范围内的状态保留在内存中,但您必须查找它们。
除了将所有内容恢复到可运行状态的开销之外,其主要缺点是,如果网站没有处理请求,该网站通常无法执行任何操作。有一些解决方法,比如cron作业/计划任务,但如果应用程序在整个时间“运行”,则不需要它们。
答案 1 :(得分:0)
不幸的是,在PHP中远程进行某种状态处理的唯一方法是使用会话(和间接cookie)。即使您使用会话来保存您的状态,也必须在下次请求时重建。