我是新來的PHP,並嘗試啓動PHP項目有聲的理由。 我見過很多網站源代碼,並意識到每個人都有不同的做法。最好的地方來存儲數據庫建設和本地配置設置
最初我想在配置類 中保存我的數據庫設置和本地設置,如Dataformate,Currency formate等,它可以在不使用include的情況下在每個應用程序中訪問。
而且我需要一個良好的控制類,我不希望使用任何框架!
非常感謝提前的幫助。
我是新來的PHP,並嘗試啓動PHP項目有聲的理由。 我見過很多網站源代碼,並意識到每個人都有不同的做法。最好的地方來存儲數據庫建設和本地配置設置
最初我想在配置類 中保存我的數據庫設置和本地設置,如Dataformate,Currency formate等,它可以在不使用include的情況下在每個應用程序中訪問。
而且我需要一個良好的控制類,我不希望使用任何框架!
非常感謝提前的幫助。
有人可以糾正我,如果我錯了,但我不相信你可以設置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
}
的自動裝載機的優點那就是你並不總是需要這些信息,你可以避免在不需要時加載設置文件。或者根據需要加載其他類。
如果妳不想每次都包含一個文件在您的應用程序&假設每個請求被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的其他組件
希望這有助於
存儲所有配置變量INI或YAML文件(Web服務器的不可訪問路徑)。我更喜歡Yaml文件。導致它比ini更舒適。
要讀取INI文件,你可以在PHP中使用parse_ini_file()函數。對於yaml使用symfony YAML組件。
創建一個基本配置類來讀取它。
如果運行apache,你可以使用SetEnv設置一個變量,通過使用getenv()來訪問它,可以在任何php腳本中使用它。
所以在httpd.conf中,你可能有
SetEnv CurrencyFormat SomeFormat
,你會在你的代碼中訪問這樣的:
$currencyFormat = getenv('CurrencyFormat');
不過,我不知道爲什麼你要避免包括?將你的設置本地化到你的應用當然更爲標準,這意味着包括一些東西,不管你是否真的包含了某些東西,或者閱讀某種類型的config.ini。