誰もが自分の好みを持っています。私は自分のDB設定をwebrootの外の.iniに保存してから、0600 chmod値を指定して、所有者以外の誰もがそれを読み取れないようにすることを好みます。
.iniの例は次のようになります:
[database]
driver = mysql
host = localhost
;port = 3306
schema = yourdbname
username = dbusername
password = some_pass
次に、php関数 parse_ini_file
を使用できます。
次に、コンストラクターでそれを読み取り、配列に解析します。
public function __construct($file = 'dbsettings.ini')
{
// @todo: change this path to be consistent with outside your webroot
$file = '../' . $file;
if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');
$dns = $settings['database']['driver'] .
':host=' . $settings['database']['host'] .
((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
';dbname=' . $settings['database']['schema'];
// if not PDO, this part needs to be changed parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
}
そしてビオラ、あなたはあなたのデータベース接続をセットアップするための簡単で安全な方法を持っています。このクラスはPDOエクステンダークラスから取得されたため、PDOを使用していない場合はその行を変更する必要がありますが、ご覧のとおり、$settings
でユーザー名などを取得できます。 配列。
あらゆる種類のデータベース情報をCONSTANT
に保存することは絶対に避けたいと思います。 またはGLOBAL
型変数。このように、$settings
そのクラス関数でのみ使用可能であり、他には何も使用できません。これにより、セキュリティレイヤーが追加されます。