グリーンフィールドプロジェクトがある場合、使用するPerlベースの設定モジュールは何ですか?階層的で継承可能な設定に最適なPerlモジュールは何ですか?
Catalystアプリケーションといくつかのコマンドラインスクリプトがあります。同じ構成を共有する必要があります。
私は私がしたいと思ういくつかの機能...きれいに異なる開発やライブの設定を維持するために
階層構成。
私はかつて、「グローバル」構成を定義したいと思います(例えば、results_per_page => 20)、これらの継承されてきたが、上書き可能な私のdevの/ライブのconfigsによります。
Global:
results_per_page: 20
db_dsn: DBI:mysql;
db_name: my_app
Dev:
inherit_from: Global
db_user: dev
db_pass: dev
Dev_New_Feature_Branch:
inherit_from: Dev
db_name: my_app_new_feature
Live:
inherit_from: Global
db_user: live
db_pass: secure
新しい(例えば、新開発インスタンス)私は新しいサーバーにプロジェクトを配置、または支店/フォーク/どこかでそれをコピーすると、私は(一度だけ)するセットされた構成のセット/ファイルへ将来のすべての更新は自動的に行われます。
私は、これはシンボリックリンクで達成することができ想定たい:
git clone example.com:/var/git/my_project . # or any equiv vcs
cd my_project/etc
ln -s live.config to_use.config
その後、将来的に
git pull # or any equiv vcs
を私もFindBinに似て何か欲しい、私のconfigsができるように、絶対パスを使用するか、現在のデプロイメントに対して相対パスを使用します。
/ホーム/私/開発/プロジェクトの/ etc/configには含まれてい/home/me/development/project/
bin
lib
etc/config
を考える:私のPerlコードがtmpl_dirコンフィギュレーションを検索するとき
tmpl_dir: templates/
それが得られます。
/home/me/development/project/templates/
を
ライブ配信の場合:
/var/www/project/
bin
lib
etc/config
apache_config: /etc/apache2/httpd.conf
は、すべてのケースで「/etc/apache2/httpd.conf」を返します:よう同じコードが魔法のように、光栄されなければならない設定に
/var/www/project/templates/
絶対値を返します。
よりもむしろFindBinスタイルのアプローチ、代替手段によって設定値が他の設定値に基づいて定義することができるようになるのでしょうか?
tmpl_dir: $base_dir/templates
私もポニーたい;)