我使用this PHPConfig Package来完成那种事情。
这种方法让你将所有的配置项存储在代码之外的一个独立位置,并且可以轻松地在应用程序的任何地方访问任何配置值。
目录结构
- app
- app.php
- config
- config_file_one.php
- config_file_two.php
- public
- index.php
config_file_one.php
<?php
use TomWright\PHPConfig\Config;
$config = Config::getInstance();
$config->setItem('mysite.name', 'My Site');
config_file_two.php
<?php
use TomWright\PHPConfig\Config;
$config = Config::getInstance();
$config->setItem('mysite.url', 'https://www.example.com');
app.php
<?php
use TomWright\PHPConfig\Config;
class App {
public function __construct()
{
$this->loadConfigFiles();
}
private function loadConfigFiles()
{
require_once '/path/to/app/config/config_file_one.php';
require_once '/path/to/app/config/config_file_two.php';
}
public function run()
{
$config = Config::getInstance();
var_dump($config->getItem('mysite.name'));
var_dump($config->getItem('mysite.url'));
var_dump($config->getItem('mysite'));
}
}
index.php
<?php
require_once './vendor/autoload.php';
$app = new App();
$app->run();
你可以进一步操作,自动包括配置目录下的所有php文件。
你也可以根据环境变量和系统设置(如开发和生产环境)定义不同的配置项。