我是PHP的新手,正在尝试开始一个有良好基础的PHP项目。我看过很多网站的源码,并意识到每个网站的源码都是不同的。
最初,我想保存我的数据库设置和本地设置,如数据格式,货币格式等在一个配置类,这是可访问的任何地方的应用程序,而不是使用包含。
我需要一个好的控制器类,我不想使用任何框架!
非常感谢您提前给予的帮助。
发布于 2011-04-11 20:14:02
如果我错了,有人可以纠正我,但我不相信不使用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() functionautoloader.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
}自动加载器的优点是,如果您不总是需要这些信息,则可以避免在不需要时加载设置文件。或者根据需要加载其他类。
发布于 2011-04-11 20:18:43
如果你想在你的应用程序中每次都包含一个文件&假设每个请求都由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:模式、框架、测试和更多作者: McArthur
它将让您了解如何创建MVC的控制器和其他组件
希望这能有所帮助
发布于 2011-04-11 20:23:37
将所有配置变量存储到ini或yaml文件中(webserver的不可访问路径)。我更喜欢Yaml文件。因为它比ini更舒服。
要读取ini文件,可以使用php中的parse_ini_file()函数。对于yaml,使用symfony YAML组件。
创建一个基本的config类来读取它。
https://stackoverflow.com/questions/5620951
复制相似问题