2013-07-04 20 views
1

我習慣於在c#中使用application_start事件在glocal.ascx中。php替代Application_Start在c#

我需要在php中創建類似的東西,所以當應用程序第一次加載時,我可以首次緩存所有數據。

有沒有人知道我這樣做的好方法。

+0

原始PHP不是一個框架,所以您必須手動完成此操作,或者考慮使用像FuelPHP – Bojangles

+0

這樣的框架,只需在第一次使用時使用類的析構函數來緩存任何內容。並在你第二次來的構造函數中加載緩存;) – Preexo

回答

0

在PHP中,每個腳本按順序遍歷所有代碼,然後死亡。所以,如果我正確理解你的問題,你基本上就是想將緩存系統構建到腳本的頂部。

在我更簡單的項目中,我只包含一個處理所有網站廣泛/全局任務的文件(我稱之爲assign.inc)。它首先加載每個頁面,並設置我的會話/數據庫連接等。

在我的大項目中,我通過index.php(通過.htaccess)編寫了所有流量,這啓動了我的CMS類,儘管__construct做了所有事情。

這有幫助嗎?

1

PHP在ASP.NET中沒有類似AppDomain的東西。

在ASP.NET中,一旦AppDomain進程和(同步)請求在此進程中作爲「HttpContext線程」處理,Web服務器就會產生該請求。異步IHttpHandlers可以在多個線程上處理,但也共享相同的AppDomain進程。

在PHP中,每個請求都是一個進程(如FastCGI的一個線程),但是您沒有靜態共享作用域。腳本執行,然後死亡。要共享內存中的數據,您需要像memcache這樣的助手。