Вопросы о задаче развертывания по умолчанию в Capistrano для проекта PHP и config.php

У меня целый день понимания использования Capistrano. Это действительно хороший инструмент, который сэкономит мне много времени. Я действительно хочу использовать его для развертывания одного из моих многочисленных приложений php :)

Если у меня есть config.php с переменной $ env = "development". Есть ли способ заставить Capistrano вместо этого изменить эту переменную для меня на "production"? Или я должен забыть об этом и сделать символическую ссылку на общий доступ?

приветствует Гильермо


person Guillermo    schedule 20.07.2009    source источник


Ответы (1)


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

В качестве альтернативы у вас могут быть config.php, config.php.live и т. Д., Но это требует ручного обслуживания.

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

Если вы все еще хотите сделать это с помощью capistrano - вы можете использовать sed, чтобы изменить эту строку с помощью регулярного выражения:

sed -i 's/$env=\"development\"/$env=\"production\"/' config.php

очевидно, запускать это после развертывания файла.

person Simon Scarfe    schedule 20.07.2009
comment
На самом деле я использую ссылку на свои настройки: $ env = dev $ conf [dev] [db_host] = xxxxx $ conf [production] [db_host] = yyyyyy Итак, этой команды будет достаточно. Спасибо - person Guillermo; 20.07.2009