Arkはこうするとどこでも設定が取れる。
use MyApp::Models; models('conf')->{database}{master};
https://github.com/ark-framework/ark/blob/master/lib/Ark/Models.pm
コードを読めばわかるけど、このmodels('conf')、config.plとconfig_local.plを読むようになっている。
そこに直接設定を書いてしまうと使いにくいので、Config::ENVを使うようにするとよいと思う。
package MyApp::Config; use strict; use warnings; use utf8; use Config::ENV 'PLACK_ENV'; common load("config/common.pl"); config prod => { load("config/prod.pl"), }; config stg => { load("config/stg.pl"), }; config dev => { load("config/dev.pl"), }; 1;
# config.pl use MyApp::Config (); MyApp::Config->current;
今まで、config_local.plをコミットせずに環境ごとにあれこれしたり、リンクを貼ったりしてたけど、これでいいかもしれない。実際には、試してないのでなんかダメなことあるかも。
追記
人によって変えたい設定は今まで通りconfig_local.plで上書きする。