2011-04-11 57 views
1

我是新來的PHP,並嘗試啓動PHP項目有聲的理由。 我見過很多網站源代碼,並意識到每個人都有不同的做法。最好的地方來存儲數據庫建設和本地配置設置

最初我想在配置類 中保存我的數據庫設置和本地設置,如Dataformate,Currency formate等,它可以在不使用include的情況下在每個應用程序中訪問。

而且我需要一個良好的控制類,我不希望使用任何框架!

非常感謝提前的幫助。

回答

0

有人可以糾正我,如果我錯了,但我不相信你可以設置PHP變量不使用包括,即使你能,這將是一個糟糕的主意。如果有可能,任何維護你的代碼的人都會很困惑。

可以做,它創建一個什麼功能__autoload(參見:http://php.net/manual/en/language.oop5.autoload.php)加載一個類的變量,當你需要它。然而這比包括文件在內的硬件更昂貴。

如何您可以創建一個自動加載

的index.php:

<?php 

include("autoloader.inc.php"); 

$vars = new settings(); //this procs the __audoload() function 

autoloader.inc.php:

<?php 

function __autoload($class) { 
    include $class . '.php'; 
} 

的settings.php:

<?php 

//settings functions 
date_default_timezone_set('America/Los_Angeles'); 
//... more stuff 


//variable container class 
class settings { 
    public static $dbuser = "billybob"; 
    //... more stuff 
} 

的自動裝載機的優點那就是你並不總是需要這些信息,你可以避免在不需要時加載設置文件。或者根據需要加載其他類。

0

如果妳不想每次都包含一個文件在您的應用程序&假設每個請求被index.php文件就可以像處理,

$lib_paths = array(); 
$lib_paths[] = "c:/web/htdocs/appname/lib"; // you can more paths in this array 
$inc_path = implode(PATH_SEPARATOR, $lib_paths); 
set_include_path($inc_path); 

假設lib中有你的配置類/文件。

如果你正在尋找一個控制器類&因爲你說你是新我建議你閱讀

臨PHP:模式,框架,測試和更通過凱文·麥克阿瑟

它會給你一個關於創建控制器的想法& MVC的其他組件

希望這有助於

0

存儲所有配置變量INI或YAML文件(Web服務器的不可訪問路徑)。我更喜歡Yaml文件。導致它比ini更舒適。

要讀取INI文件,你可以在PHP中使用parse_ini_file()函數。對於yaml使用symfony YAML組件。

創建一個基本配置類來讀取它。

0

如果運行apache,你可以使用SetEnv設置一個變量,通過使用getenv()來訪問它,可以在任何php腳本中使用它。

所以在httpd.conf中,你可能有

SetEnv CurrencyFormat SomeFormat 

,你會在你的代碼中訪問這樣的:

$currencyFormat = getenv('CurrencyFormat'); 

不過,我不知道爲什麼你要避免包括?將你的設置本地化到你的應用當然更爲標準,這意味着包括一些東西,不管你是否真的包含了某些東西,或者閱讀某種類型的config.ini。