PHP 全局配置文件

PHP global config files

我有一个 config.php 文件,其中包含:

<?php
// Config File

return array(
    //database connections
    'db_type' = 'mysql';
    'db_host' = 'localhost';
    'db_user' = 'user';
    'db_pass' = 'pass';
    'db_name' = 'name';

);

然后我在我的初始化文件中调用它(我已经尝试过使用和不使用 GLOBAL)

if (file_exists(ROOT . DS . 'app' . DS . 'core' . DS . 'config.php'))
{
    $config = include('config.php');
    GLOBAL $config;
}

在我的数据库中 class 我已经尝试以两种不同的方式使用

1.

private $db_type = $config['db_type'];
private $db_host = $config['db_host'];
private $db_user = $config['db_user'];
private $db_pass = $config['db_pass'];
private $db_name = $config['db_name'];

2.

function __construct() {
    global $config;
    $this->db_type = $config['db_type'];
    $this->db_host = $config['db_host'];
    $this->db_user = $config['db_user'];
    $this->db_pass = $config['db_pass'];
    $this->db_name = $config['db_name'];
}

方式 1 表示意外的 $config,方式 2 使数据库抛出错误 "could not find driver"

我的配置文件不仅包含数据库配置,还包含站点名称、root url、公共路径等内容

我怎样才能完成这项工作?有什么我想念的吗?我应该用不同的方式来做这件事吗?

有人知道这方面的好教程或示例吗?

感谢阅读。

您忘记了“>”字符,您应该使用逗号而不是分号来分隔键值对:

<?php
// Config File

return array(
    //database connections
    'db_type' => 'mysql',
    'db_host' => 'localhost',
    'db_user' => 'user',
    'db_pass' => 'pass',
    'db_name' => 'name',

);

global有毒,请勿使用

我会为数据库参数使用常量:

define('DB_NAME', 'MyDatabase');
define('DB_USER', 'root');
define('DB_PASSWORD', '1234');

然后,为您的 config.php 使用 require 而不是 include。如果没有它,您的申请将无法继续。