config.php文件: return[ "abc"=>'abc' ];
入口文件index.php: run::php
run.php文件:
public function __construct(){
$config = 'config.php';
}
public static function run()
{
//路由匹配
Router::dispatch();
}
要在项目其它文件调用$config,用单列模式实现在所有文件都能调用config里面的配置项
要在项目的其他文件中调用 $config
,可以使用单例模式来确保配置文件只被加载一次,并且在整个应用程序中共享相同的配置实例。以下是一个实现方法:
// Config.php
class Config
{
private static $instance = null;
private $config = [];
private function __construct()
{
$this->config = include 'config.php';
}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function get($key)
{
return isset($this->config[$key]) ? $this->config[$key] : null;
}
}
run.php
文件,在构造函数中加载配置类。// run.php
class Run
{
public function __construct()
{
// Load the configuration
Config::getInstance();
}
public static function run()
{
// 路由匹配
Router::dispatch();
}
}
Config::getInstance()->get('key')
来获取配置项。// example.php
require_once 'Config.php';
$config = Config::getInstance();
echo $config->get('abc'); // 输出 'abc'
index.php
,初始化并运行应用程序。// index.php
require_once 'Config.php';
require_once 'run.php';
require_once 'Router.php'; // 假设你有一个 Router 类
$run = new Run();
$run::run();
通过这种方式,你可以在项目的任何地方使用 Config::getInstance()->get('key')
来获取配置项,确保配置文件只被加载一次,并且在整个应用程序中共享相同的配置实例。