我正在設定一個用於部署的Catalyst webapp,並希望從生產環境中的app.pm
中刪除-Debug
和StackTrace
Catalyst外掛.但是,由於我保持測試環境,我想避免“硬編碼”這個.相反,我想有一個定義環境的配置變數並相應地載入模組.所有源都在SVN上,如果我手動更新repo,然後更改我在app.pm中載入的模組,它會變得混亂.
應用程式目前使用configLoader
模組來讀取具有所有配置的local_app.yml
檔案,該檔案沒有版本化,允許對應用程式在開發、測試或prod環境中的工作方式進行一些控制;但這些只在應用程式啟動後才讀取(因此,在載入模組之後).
這是app.pm
的簡化:
package app;
use strict;
use warnings;
use Hash::Merge ();
use Sys::Hostname;
use Catalyst::Runtime '5.80';
use Catalyst qw/
-Debug
StackTrace
ConfigLoader
SomeOtherModule
AndYetAnotherOne
/;
__PACKAGE__->config(
# Some local config stuff
);
# Start the application
__PACKAGE__->setup();
有沒有辦法做到這一點而不必使用Unix命令來找出哪個主機正在執行應用程式?