greenfield 프로젝트가 있다면 Perl 기반 구성 모듈을 사용하는 가장 좋은 방법은 무엇입니까?계층 적 및 상속 가능한 구성을위한 최고의 Perl 모듈은 무엇입니까?
Catalyst 응용 프로그램과 일부 명령 줄 스크립트가 있습니다. 그들은 동일한 구성을 공유해야합니다.
내가 원하는 생각하는 일부 기능 ...
계층 구성은 완전히 다른 개발 및 라이브 설정을 유지합니다.
"글로벌"구성을 한 번 정의 (예 : results_per_page => 20)하고 싶습니다. 상속되지만 내 구성/구성에 의해 오버라이드 할 수 있습니다.
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
나는 새로운 서버 또는 지점/포크 /에 프로젝트를 배포
는, 내가 (예를 들어, 새로운 개발 인스턴스) 새로운 곳으로 원하는 복사 (1 회에 한함) 설정하는 구성 집합/파일에 사용하고 이후의 모든 업데이트는 자동으로 수행됩니다.내가 이것을 직시 줄은 심볼릭 링크로 달성 될 수있다 : 미래
git pull # or any equiv vcs
에 그런
git clone example.com:/var/git/my_project . # or any equiv vcs
cd my_project/etc
ln -s live.config to_use.config
I 좋겠 또한 뭔가 같은 FindBin 유사 그, 그래서 내 CONFIGS 수 절대 경로를 사용하거나 현재 배포와 관련이 있습니다. 내 펄 코드는 tmpl_dir 구성을 보이는 경우
tmpl_dir: templates/
은 얻을 것이다 :/홈/ME/개발/프로젝트/등은/설정이 포함
/home/me/development/project/
bin
lib
etc/config
을 감안할 때
/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
나는 또한 조랑말 싶습니다;