作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: 有关PHP没有"application"物件
时间Sun Feb 26 16:06:43 2006
PHP确实是没有内建类似ASP/ASP.NET的Application物件所提供
的功能。此外,在ASP/ASP.NET里面所谓的Application是由一个
IIS里面建立的虚拟目录来定义它的范围,在PHP里面由於PHP并
没有跟Web server绑在一起,因此我们也无法像在ASP/ASP.NET
里面一样透过IIS管理员介面来建立一个Application,也由於没有
Web server方面的支援因此ASP/ASP.net的Application_OnStart
这类功能也就付之阙如(ASP/ASP.net架构下系统自己会在应用程式
范围内第一次被存取的时候呼叫你的程式,但是在PHP里面你怎麽
知道/myapp这个application被"启动"了或者被"停止"了?)。
如果在PHP里面需要类似ASP/ASP.net的Application物件的功能,
恐怕就是得自己写了。单纯只是要跨request/session共用资料
应该不难,如何定义一个application的范围以及知道某个app被
启动或者停止就得多花点脑筋)如果你的系统可支援的话,我会
觉得shared memory是一个比较好的方向(速度快,不过资料量
要够大才看得出差别)。PHP有提供操作shared memory的相关函数:
http://www.php.net/manual/en/ref.shmop.php
这页有人提到透过tmpfs档案格式(建立在shared memory上面)可以
像操作一般档案那样(fopen, fwrite, fread, fclose...)操作
shared memory。因为资料是建立在记忆体里面因此速度比一般档案
快很多,但是又可以直接用已经熟悉的档案操作方式来写code。也许
你可以朝这个方向去试试看。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.146.31