在项目中仅包含一次php文件

时间:2019-06-25 19:34:26

标签: php file

我有一个文件(config.php),其中包含我的应用程序配置数据:

<?php

return [
    // here is my associative configuration array
    // having also Closures in it
];

我要做的就是将此文件发送到Config类,该类将操纵我的数据,它将成为我的配置信息界面。

Config::init(require('config.php'));

那样,除了使用公共Config类方法之外,我不想以任何其他方式访问配置信息。

因此,我只需在项目中包含config.php一次(发送到Config类时)。

一种解决方案是在文件顶部定义一个常量:

<?php

define('config', true);

return [
    // here is my associative configuration array
    // having also Closures in it
];

那样,两次包含config.php都会产生错误,因为两次定义了“ config”常量,这在php中是非法的。

但是,可以很容易地在第二个include之前删除'config'常量。使用:

runkit_constant_remove('config');

这就是为什么我需要问您一个更安全/可信赖的解决方案,该解决方案可以保证只能从Config类获取配置信息。

1 个答案:

答案 0 :(得分:0)

我建议使用一个ini文件来完成。下面是一个简单的示例:

config.ini

[app]
user = myuser
pass = 123123
stage = 1

您的配置初始化:

Config::init(parse_ini_file('app.ini'));

parse_ini_file文档单击here