2014-01-15 124 views
0

你好朋友,因爲他們是?運行之前預加載php代碼

我有以下問題。

我有幾個包含php代碼的文件,這些文件分別製作一個網站,實際上每個文件都會生成不同的html代碼段,就像以前在執行之前可以捕獲php代碼一樣。

我正在讀取每個文件並創建一個包含其中每個文件的所有代碼的新文件,但我不知道是否有任何其他方式在運行它之前直接將php代碼捕獲到內存中。

我試過使用ob_輸出緩衝區,但我返回了執行代碼(html)。

Control類如下:

class IndexCtrl extends CtrlAbs { 
    public function show() { 
     $template = new Template ($this->template); 
     $template->load(); 
     $indexVst = new IndexVst(); 
     $indexVst->load(); 
     $phpJoined = JoinPhp::getInstance(); 
     $phpJoined->setFile(); 
     $phpJoined->joinFiles(); 
     printf ('%s', $phpJoined->load()); 
     unlink ($phpJoined->getArchivo()); 
    } 
} 

類加載的PHP代碼(模板和視圖)有:包含PHP代碼

文件是:

默認。 php

use mod\api\htmldom\HtmlDom; 
use mod\api\htmldom\common\Types; 

$htmlDom = new HtmlDom(); 

index.php

$table0 = $htmlDom->table(); 
$table0->border ('1'); 

$tr0 = $htmlDom->tr(); 
$th0 = $htmlDom->th(); 
$th0->scope ('col'); 
$tr0->insert ($th0); 

$tr1 = $htmlDom->tr(); 
$td0 = $htmlDom->td(); 
$strong0 = $htmlDom->strong(); 
$strong0->insert ('Convert html to HTMLDOM'); 
$td0->insert ($strong0); 
$tr1->insert ($td0); 

$table0->insert ($tr0); 
$table0->insert ($tr1); 

$htmlDom->body ($table0); 
$htmlDom->showHtml(); 

後兩個文件包含生成html代碼的php代碼。

正如我所說的,我的問題是,有沒有其他方法可以在運行之前直接將php代碼捕獲到內存中。

在預先的問候和非常感謝你的幫助。

+0

什麼。你爲什麼這樣做? –

+0

這是一個非常奇怪的模板系統 - 它沒有真正抽象任何東西,爲什麼不直接輸出HTML? – Izkata

+0

感謝您的反應如此之快 我試圖用這個系統來產生在請求一個頁面的同一瞬間,html代碼就是這樣減慢了請求的速度,但是到目前爲止,對這些請求的加載測試是可以接受的。我試圖建立這個系統作爲附加層來減少可能在拒絕JavaScript和html代碼。 –

回答

1

是的,有辦法將php代碼緩存在內存中,而不是每次從磁盤讀取它。閱讀關於PHP指令緩存有點像

  1. APC:http://ca3.php.net/apc/
  2. 的Zend Opcache:http://ca1.php.net/opcache

也有幾個不同影響的項目(如了XCache,檢查PHP accellerators維基)。他們可以加快PHP,但你需要一個root權限來安裝它們(他們是一個PHP模塊)。如果你沒有,你可以忘掉它自己的/專用服務器;(

有沒有不同的方式來緩存PHP文件(在PHP直接)可以緩存,纔會生成HTML輸出

+0

感謝您的快速響應,我清除了一些道路來處理預加載文件,儘管我可以看到APC庫,更關注存儲變量。 Opcache可能是最合適的,但是處理它的功能很少。我正在測試這個庫,看看它如何去,然後告訴你。 –

+0

APC是操作碼緩存+共享用戶內存。你可以將它用於兩者,Zend Opcache只是opchace而不用存儲變量。還有一個訣竅 - APC適用於PHP5.4及更低版本。 PHP5.5附帶ZendOpcache作爲集成解決方案,因爲不存在支持PHP 5.5的APC版本,所以無法使用5.5版APC操作碼緩存工作。您可以下載並安裝APC模擬共享用戶內存的APCU(變量存儲) – PolishDeveloper

相關問題