PHP全局配置文件

时间:2015-01-31 14:43:15

标签: php config global

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

<?php
// Config File

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

);

然后我在我的init文件中调用它(我已尝试使用和不使用GLOBAL)

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

在我的数据库类中,我尝试过以两种不同的方式使用

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使数据库抛出错误“找不到驱动程序”

我的配置文件不仅包含数据库配置,还包括网站名称,根网址,公共路径等。

我该如何使这项工作?有什么我想念的吗?我应该采取不同的方式吗?

有人知道一个好的教程或示例吗?

感谢阅读。

2 个答案:

答案 0 :(得分:2)

你忘记了'&gt;'你应该使用逗号而不是分号来分隔键值对:

<?php
// Config File

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

);

答案 1 :(得分:1)

global是邪恶的,请不要使用它。

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

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

然后,使用require代替include作为config.php。没有它,你的申请不应该继续。