我使用全局数组为我的应用程序定义某些配置。但到目前为止,我已经读到全局变形是不好的做法,应该避免。这个全局是只读的,所以我不会在我的代码中以任何方式改变它。
定义配置设置的正确方法是什么?
$GLOBALS['config'] = array(
'mysql' => array(
'host' => 'localhost',
'username' => 'user',
'password' => 'password',
'database' => 'database'
),
'navigation' => array(
'Home' => array('/', '/index.php'),
'Sign up' => array('/signup', '/signup.php'),
'Log in' => array('/login', '/login.php')
)
);
答案 0 :(得分:0)
我对PHP没有太多了解。但是对于OOP,您可以创建一个包含静态只读变量的类(可能名为Config)。然后按如下方式使用它们
Config.mysql
和Config.navigation
答案 1 :(得分:0)
从Configuration类开始,将所有设置保存在key->值对以及getter和setter方法的集合中。此类是正常应用程序代码的一部分。
为了能够处理每个环境的不同设置,例如示例中的连接参数,请使用多个文件。
对于每个环境,都存在一个文件夹来存储所有特定于环境的配置文件。
此处存储的文件之一是:
的脚本应用程序的其他部分使用此静态对象来获取设置。
不同文件夹中的文件具有相同的名称,例如在此结构中:
- config
- development
- config.php
- staging
- config.php
- production
- config.php
在部署期间,将包含要部署到的环境的配置文件。我所做的还是将部署脚本放在这些文件夹中。
此设置支持多种环境,您可以使用版本控制下的配置设置保留文件。