page_adsence

2015年12月28日月曜日

Laravel4系のパッケージ作成における設定ファイルの読み込み

Laravelでcomoserで管理する自作ライブラリを作成していたのですが、どうしても設定ファイルが読み込めないという事態があった。

下記の様な形で設定ファイルを置いてみたのですが、いくらやってもNULL。
app/config/packages/vendor_name/package_name/config.php
app/config/packages/vendor_name/package_name/test.php

色々調べて見ると、原因はパッケージ側に設定ファイルがない事が原因でした。
vendor/vendor_name/package_name/src/vendor_namespace/config/config.php
vendor/vendor_name/package_name/src/vendor_namespace/config/test.php

どうやらパッケージ側の設定ファイルの値を、アプリ側の設定ファイルの値で上書きするような挙動になっているようです。 使用する場合は、
Config::get('package_name::filename.key')


例えば、下記の様な設定ファイルがあるとする。
$ vi vendor/vendor_name/package_name/src/vendor_namespace/config/test.php
<?php
return array(

    'key' => 'testtest'

);
$ vi app/config/packages/vendor_name/package_name/test.php
<?php
return array(

    'key' => 'testtesttest'

);


このファイルの内容を取得する場合は、
Config::get('package_name::test.key'); → 結果:testtesttest
設定ファイル名がconfig.phpで、アプリ側に設定ファイルがなかった場合
$ vi vendor/vendor_name/package_name/src/vendor_namespace/config/config.php
<?php
return array(

    'key' => 'testtest'

);
app/config/packages/vendor_name/package_name/config.php ← このファイルはない
このファイルの内容を取得する場合は、
Config::get('package_name::key'); → 結果:testtest