我过去一直在使用 rails、merb、django 和 asp.net mvc 应用程序。他们的共同点(与问题相关)是他们拥有设置框架的代码。这通常意味着创建持续存在的对象和状态,直到 Web 服务器被回收(例如设置路由,或检查哪些控制器可用等)。
据我所知,PHP 更像是一个 CGI 脚本,每次运行时都会编译为一些字节码,并在发出请求后将其丢弃。当然,您可以拥有会话,以便在来自同一用户的请求之间保留数据,并且正如我所见,有像 APC 这样的扩展,您可以使用它在服务器级别的请求之间保留对象。
我的问题是:如何创建一个像 rails 之类的 PHP 应用程序?我的意思是一个应用程序在第一次请求时设置框架,然后在第二次和以后的请求中使用已经设置的对象。mod_php 中是否有一些内置的缓存设施?(例如,存储已执行 php 应用程序的编译字节码)还是使用 APC 或一些类似的扩展来解决这个问题的唯一方法?你会怎么做?
谢谢。
编辑:替代问题:如果我创建一个大型 PHP 应用程序,它的设置时间很长,但运行时间很短(就像上面提到的框架一样),那么我应该如何“缓存”已经设置的东西(这可能意味着很多东西,除了数据库连接,因为你已经在 PHP 中有持久连接)。
为了证明大型设置时间的合理性:如果我使用 PHP 反射来检查哪些对象可用并据此设置运行时该怎么办。进行大量反思通常很慢,但只需要做一次(并且只有在修改源代码时才重新评估)。
EDIT2:那似乎是APC。很高兴知道它自动缓存字节码的事实。