我正在将Java Servlet中的应用程序移植到PHP。什么是PHP中的Servlet.init()?
基本上,页面使用需要计算的表。这是非常昂贵的操作。我正在使用LAMP。我想知道在Apache启动时是否有一种方法只能初始化一次表?
答案 0 :(得分:3)
您需要http://www.zend.com/products/platform/之类的内容。与应用服务器不同,PHP会对每个请求进行全部处理没有像zend平台这样的东西,就没有持久性的概念。
答案 1 :(得分:3)
你可以通过几种方式实现这一点,但没有一种能真正模仿你熟悉的Servlet.init()方法的方式。您可以初始化该值并将其存储在会话中,但每个用户将有一个创建代价,或者使用您的应用程序可以访问的缓存,并且不会对每个用户都是唯一的。 Zend有一个非常易于使用的缓存接口,可以与基于内存(如APC或eAccelerator)和基于文件的缓存一起使用。
答案 2 :(得分:1)
PHP没有应用程序范围。您可以滥用$GLOBALS
,但更好的方法是将数据存储在$_SESSION
或使用Zend_Cache。
答案 3 :(得分:1)
答案 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练习。