如何避免在代码中的多个位置存储数据库凭据?

Pet*_*now 1 php connection-string database-connection class global-variables

用户'Chacha102' 在2010年发布了以下代码以回答这个问题.我喜欢他的代码(如下所示),但是想了解如何避免让数据库连接凭据出现在代码中的多个位置.

这是他的代码:

$cb_db = new cb_db(USER, PASSWORD, NAME, HOST);
$cb_user = new cb_user($cb_db);

class cb_user {
    public __construct(cb_db $database)
    {
        $this->database = $database
    }

    protected function find_by_sql( $sql ) {

        $this->database = new cb_db(USER, PASSWORD, NAME, HOST);
        $result_set = $cb_db->query( $sql );

        $object_array = array();
        while( $row = $cb_db->fetch_array( $result_set ) ) {
            $object_array[] = self::instantiate( $row );
        }
        return $object_array;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我将有许多类和函数,并且不希望用户名密码硬编码到每个类中.如果必要的话,我可以在一个地方更新它.

请问最好的方法是什么?

Bug*_*der 5

为什么不使用"config.php"来声明您将使用的所有变量,例如用户名,数据库,服务器,可能与站点等相关的其他设置.