2011-04-02 45 views
3

我有一個用戶認證系統,我目前正在編寫。問題是,我不想爲每個我想要使用該類的頁面包含類x,y,z等。例如,這裏是索引頁:PHP - 避免每個頁面包含所有內容?

///////// I would like to not have to include all these files everytime//////// 

include_once '../privateFiles/includes/config/config.php'; 

include_once CLASSES.'\GeneratePage.php'; 

include_once DB.'\Db.php'; 

include_once HELPERS.'\HelperLibraryUser.php'; //calls on user class 
////////////////////////////////////////////////////////////////////////////// 

$html = new GeneratePage(); 
$helper = new HelperLibraryUser("username","password","email"); 

$html->addHeader('Home Page',''); 

$html->addBody('homePage', 
'<p>This is the main body of the page</p>'. 
$helper->getUserEmail().'<br/>'. 
$helper->doesUserExists()); 

$html->addFooter("Copyright goes here"); 

echo $html->getPage(); 

正如你所看到的,有我需要包括每個頁面上的幾個文件,以及更多的類,我補充了更多的文件,我將不得不包括。我如何避免這種情況?

回答

3

您可以定義一個自動加載功能,例如:

function __autoload($f) { require_once "/pathtoclassdirectory/$f.php"; } 

這樣,當PHP遇到一個參考一類是不知道,它會自動查找具有相同的名稱文件類並加載它。

你可以明顯在這裏添加一些邏輯,如果你需要把不同類別在不同的目錄...

+0

這會如何影響速度?我想它比指定類路徑的速度慢? – johnyboy 2011-04-02 07:09:30

+0

噢,我通常把這個函數定義在一個常見的文件中,如Click提到... – awm 2011-04-02 07:09:38

+0

謝謝你們:awn和Click Upvote!我會按建議做:) – johnyboy 2011-04-02 07:12:15

2

建立一個叫做common.php文件,並把這些包括報表以及其他功能/代碼,您需要這個文件中的每個文件(如數據庫連接代碼等)。然後,在每個文件的頂部簡單地做到這一點:

<? 
require_once('common.php'); 

這將包括所有的文件,而無需將它們包括seperately。

相關問題