我有一个settings.php文件,我想在其中保存一些常量,比如我的数据库连接信息。
我想要完成的,但对于我的生活来说,我不知道该怎么做…我不希望我的settings.php中的每个常量都全局可用。我使用的是MVC设置,例如,我的控制器中没有可用的数据库连接信息。
我的问题是,如何设置这样的设置文件:
class Settings {
const HOST = 'localhost';
....
const DEBUG = true;
}然后将其加载到我的应用程序中,以便将我的db连接常量封装到我的Model类中,依此类推。
我确信我没有尽我所能地解释这一点,但基本上我希望A:为所有设置提供一个中心位置,B:使其能够在我的应用程序中控制对这些设置的访问,从而使它们不是所有的全局可用的。
我遇到的问题是,如果我在父类中包含settings.php文件,那么它所固有的所有类也可以访问settings.php。
发布于 2010-12-08 08:07:37
将它们包装在一个函数中并调用它,例如
function init() {
$model = new Model;
$model->setConfigurationValue('name', 'value);
// etc ...
}
init();这样,没有任何东西是全局的。
就我个人而言,我使用symfony components YAML库将我的配置存储在YAML文件中,该文件会自动加载到一个单独的配置对象中,该对象允许从任何地方进行访问,但可以防止状态更改。我使用了多个YAML文件,这样我的DEV环境就可以添加额外的配置等等。
发布于 2010-12-08 09:19:53
我会在一个名为"local_settings.php“的文件中定义你的类。只需在php程序的顶部“包含”该文件并实例化你的类即可。
FOr每一个抱怨全局变量的人,这才是真正的全球价值观!你不太可能有另一个想要在你的模型的不同版本上工作的类连接到不同的数据库。
https://stackoverflow.com/questions/4382970
复制相似问题