2016-11-25 22 views
0

local/config/xxx/config.inilocal/config/xxx/config_base.iniにいくつかの設定があります。Zend Framework 2のローカル設定でアクセスする方法

Zend Framework 2の設定にアクセスするにはどうすればよいですか。私はServiceProviderのインスタンスを持っていますが、これらの設定ではアクセスできません。 2つのコンフィギュレーションをマージする方法を、次に

$config = (new Zend\Config\ReaderIni())->fromFile(getcwd() . '/local/config/xxx/config.ini'); 

しかし:それは唯一module.config.php$config = $sm->get('Config');とEX)

準備ができて私は私が読んでiniファイルのためにこれを使用することができますことを発見しましたか?

+0

実際にこの設定の内容は何ですか? – Wilt

答えて

0

スケルトンアプリケーションを使用する場合、システム構成はデフォルトでconfig/application.config.phpです。

/ config.php 
return array(
    'webhost' => 'www.ekio.rw', 
    'database' => array(
     'adapter' => 'pdo_mysql', 
     'params' => array(
      'host'  => 'db.ekio.rw', 
      'username' => 'dbuser', 
      'password' => 'secret', 
      'dbname' => 'mydatabase' 
     ) 
    ) 
); 

その後、

// Consumes the configuration array 
$config = new Zend\Config\Config(include 'config.php'); 

// Display a configuration datum (results in 'www.ekio.rw') 
echo $config->webhost; 
1

は、なぜあなたは、あなたの設定ファイル用の.ini拡張子を使用しますか? documentation on Advanced Configuration Tricksで読むことができるように、設定ファイルは.phpファイルとして保存する必要があります。それらはあなたの設定のキーと値を保持している配列を含んでおり、autoloadフォルダから自動的に読み込まれ、モジュール設定ファイルとマージされます。

Configがすべてのモジュールから集約されると、ConfigListenerは指定されたディレクトリ(通常はconfig/autoload /)にglobbedされたアプリケーション構成もマージします。ここで

あなたはまた、合併に必要なファイルを見つけるために使用されるフォルダのパターンを見つけることができます。

// An array of paths from which to glob configuration files after 
// modules are loaded. These effectively overide configuration 
// provided by modules themselves. Paths may use GLOB_BRACE notation. 
'config_glob_paths' => array(
    'config/autoload/{{,*.}global,{,*.}local}.php', 
), 

利点は、あなたが別のファイルリーダーとあなたを必要としないということです他の設定と同じようにサービスマネージャからカスタム設定に直接アクセスすることができます。

$config = $sm->get('Config'); 
$webhost = $config['my_param']; 

もう一つの利点は、セットアップ本番環境は、(ファイルの読み取りが遅いプロセスで)劇的にブートストラップ手順のパフォーマンスが向上します設定ファイルをキャッシュすることができるということです。

ファイル拡張子の名前を.phpに変更し、カスタム設定値の設定に関するドキュメントに従うことをお勧めします。

+0

答えをありがとうが、実際には私の質問に答えることはありません。私は**このタイプの構成を使用してプロジェクトを構築する会社であるため、.iniファイルを**使用する必要があります。 – Simoyw

+0

@Simoywそれでも 'ini'ファイルを' php'ファイルに変換する方が良いと思います。 – Wilt

関連する問題