Re: 有關PHP沒有"application"物件
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
討論串 (同標題文章)
完整討論串 (本文為第 9 之 9 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章