我使用这个 PHPConfig 包来做那种事情。
这种方法使您可以将所有配置项存储在与其余代码不同的位置,并让您可以轻松访问应用程序中任何位置的任何配置值。
目录结构
- 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');
应用程序.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')); // My Site
var_dump($config->getItem('mysite.url')); // https://www.example.com
var_dump($config->getItem('mysite')); // stdClass { name => 'My Site', url => 'https://www.example.com' }
}
}
索引.php
<?php
require_once './vendor/autoload.php';
$app = new App();
$app->run();
您可以更进一步,自动将所有 php 文件包含在 config 目录下。
您还可以根据环境变量和系统设置定义不同的配置项,例如开发和生产环境。