如何在PHP框架中管理应用程序生命周期?

如何在PHP框架中管理应用程序生命周期?,php,laravel,symfony,nginx,Php,Laravel,Symfony,Nginx,我来自Java背景,JVM是一个长期运行的过程,服务器可以通过用户代码启动,应用程序状态通常由所选的框架(例如Spring)保存和管理 在PHP世界中,事情是无状态的,因为每个脚本执行都是不稳定的,因为它不保持状态(除非它使用外部介质,如数据库、内存缓存等)。web服务器通过CGI调用脚本(可能通过php fpm来优化资源) 每个HTTP请求都会导致仅为该请求初始化框架和中间件的开销,这是否正确?例如,在阅读时,它是这样出现的 对于进入系统的每个请求(例如,检测环境、初始化处理程序、路由、ORM

我来自Java背景,JVM是一个长期运行的过程,服务器可以通过用户代码启动,应用程序状态通常由所选的框架(例如Spring)保存和管理

在PHP世界中,事情是无状态的,因为每个脚本执行都是不稳定的,因为它不保持状态(除非它使用外部介质,如数据库、内存缓存等)。web服务器通过CGI调用脚本(可能通过php fpm来优化资源)

每个HTTP请求都会导致仅为该请求初始化框架和中间件的开销,这是否正确?例如,在阅读时,它是这样出现的

对于进入系统的每个请求(例如,检测环境、初始化处理程序、路由、ORM、日志记录等),这难道不需要大量重复性开销吗


还是我遗漏了什么?这些框架确实以某种方式保持状态吗?

没错,每次整个PHP代码都是从头开始运行的,包括评估类和函数定义以及其他所有内容。操作码缓存在某种程度上有帮助,但从根本上说,这是您需要考虑的模型。如果我理解正确,操作码缓存只是缓存脚本的编译版本,但并不阻止它们一次又一次地执行。没错,它将不得不重新评估,它基本上跳过了解析步骤。我并不完全了解存在什么样的缓存,也许有些缓存可以做得更多;但这肯定是基线。