如何在PHP中初始化服务器一次

时间:2009-11-19 22:48:35

标签: java php

我正在将Java Servlet中的应用程序移植到PHP。什么是PHP中的Servlet.init()?

基本上,页面使用需要计算的表。这是非常昂贵的操作。我正在使用LAMP。我想知道在Apache启动时是否有一种方法只能初始化一次表?

5 个答案:

答案 0 :(得分:3)

您需要http://www.zend.com/products/platform/之类的内容。与应用服务器不同,PHP会对每个请求进行全部处理没有像zend平台这样的东西,就没有持久性的概念。

答案 1 :(得分:3)

你可以通过几种方式实现这一点,但没有一种能真正模仿你熟悉的Servlet.init()方法的方式。您可以初始化该值并将其存储在会话中,但每个用户将有一个创建代价,或者使用您的应用程序可以访问的缓存,并且不会对每个用户都是唯一的。 Zend有一个非常易于使用的缓存接口,可以与基于内存(如APCeAccelerator)和基于文件的缓存一起使用。

答案 2 :(得分:1)

PHP没有应用程序范围。您可以滥用$GLOBALS,但更好的方法是将数据存储在$_SESSION或使用Zend_Cache

答案 3 :(得分:1)

您想要一个在所有会话中共享的单个表吗? PHP努力使会话完全隔离。甚至static变量也是每页初始化的。您可以使用APCmemcache或类似内容。

答案 4 :(得分:1)

也许表可以从服务器上的文件初始化?

例如,如果每次更新某些内容时都必须重建表,那么在初始化期间需要重新编写PHP代码:

compare data source update against file update time
if file needs update, then 
    do number crunching
    write into file
else
    read file

这必须通过逻辑来补充,该逻辑阻止文件在更新时使用,即并发101练习。