Как я могу настроить приложение Catalyst для разных серверов? - PullRequest
1 голос
/ 19 сентября 2009

Я планирую приложение Catalyst, которое будет развернуто на нескольких серверах. Он будет использоваться сотрудниками службы поддержки для управления аспектами операционной системы, работающей на этих серверах.

Приложение будет работать примерно одинаково на каждом сервере, за исключением ограниченного количества специфичных для сайта действий. Некоторые действия будут применяться только к некоторым серверам, а некоторые действия будут вести себя по-другому на других серверах.

Существуют ли какие-либо признанные шаблоны / методы проектирования, позволяющие настраивать приложение Catalyst для конкретного сайта?

В настоящее время я думаю о развертывании файла конфигурации сайта вместе с приложением, которое будет использоваться для определения действий, которые необходимо включить, и установки параметров, которые управляют поведением других действий. В идеале эта настройка должна происходить, когда приложение загружается mod_perl (Apache2) - но я не уверен, что это вообще возможно.

Любые предложения приветствуются!

Ответы [ 3 ]

4 голосов
/ 20 сентября 2009

Catalyst :: Plugin :: ConfigLoader содержит код, который поможет вам с настройкой для конкретного сайта в виде переменной среды MYAPP_CONFIG_LOCAL_SUFFIX. Поскольку контроллеры являются компонентами, а конфигурация доступна в setup_components времени, вы можете делать все, что захотите, с регистрацией действий при компиляции контроллера. Для этого не так много предварительных проверок, потому что требования у всех такие разные, но это не очень сложно, и есть совет, который можно найти в списке рассылки.

0 голосов
/ 31 октября 2009

Я всегда использую уникальную комбинацию $HOSTNAME и $USER, чтобы определить конкретный файл конфигурации для загрузки, например,

conf => "my_app_${hostname}_${user}.conf"
0 голосов
/ 19 сентября 2009

Вы можете установить шаблоны или иметь условное поведение в контроллерах на основе значения $c->req->host.

...