Zend 2には
- グローバル構成ファイル &
- モジュール レベルの構成ファイル
知りたい場合は、以下のリンクを参照してください。
ZF2 で構成がどのように機能するか
同じシナリオがあったとき、上記のリンクを使用して、このような状況を処理するのに非常に適した Zend Config モジュールを理解して活用しました。
2 つのファイルを作成する
production.php ローカル.php
これらの両方のファイルで
環境に基づいてこの配列を返します
return array(
"dbname" => "yourdbname"
"dbhostname" => "dbhostname"
"dbusername" => "yourdbusername",
"dbpassword" => "yourdbpassword"
);
zend framewrok アプリケーションの config/autoload/ ディレクトリ
後で以下の手順に従って config/application.config.php ファイルを編集します
// Apache vhost ファイルからアプリケーション環境を取得します (ここでは、Apache vhost ファイルで production または local として設定できます)
$applicationEnv = getenv('APPLICATION_ENV');
$environmentSpecificConfigPath = "config/autoload/{,*.}{".$applicationEnv.",local}.php";
// 次に、構成配列で環境固有の構成パスを渡します
'config_glob_paths' => array($environmentSpecificConfigPath)
任意のコントローラーまたはアクションで
以下のコードを使用できます
$configArray = $this->getGlobalConfig();
$configarray には、接続を作成するためのすべての DB 資格情報が含まれています
$adapter = new Zend\Db\Adapter\Adapter(array(
'driver' => 'Mysqli',
'database' => $configArray['dbname'],
'username' => $configArray['dbusername'],
'password' => $configArray['dbpassword']
));
アプリケーション全体で構成配列を使用して DB に接続する場合、環境の変更について心配する必要はありません。vhost ファイルに Apache APPLICATION_ENV エントリがあることを確認してください。
Apache vhostファイルに以下の行を追加することでそれを行うことができます
SetEnv APPLICATION_ENV "production" // in your production server
SetEnv APPLICATION_ENV "local" // in your local
最後になりましたが、Zend Experts モジュール ZeDB を使用することもできます
https://github.com/ZendExperts/ZeDb
CRUD アプリケーションを管理するには
上記の手順が環境の作成に役立つことを願っています