Я пытаюсь найти хороший способ сохранить различия в конфигурации PHP между dev и live средой. Я знаю, как обрабатывать различия, когда скрипты запускаются Apache ( см. Ниже ), но не когда они запускаются в командной строке , например. через хрон.
Справочная информация:
Что я подразумеваю под «различиями конфигурации»? Как и большинство магазинов кода, мы используем непубличную «промежуточную» версию нашего веб-сайта, где мы тестируем код перед его отправкой. на живой сайт. Мы используем Subversion и имеем действующий веб-сайт в качестве «Транка» и «Постановка» в качестве ветви. Это облегчает жизнь, когда код переходит от подготовки к жизни, если версии файлов репозитория имеют минимальные различия. Но, очевидно, некоторые детали должны быть другими, например детали подключения к БД.
Как решаются различия в конфигурации с Apache
В PHP мы устанавливаем переменные, специфичные для ветви, следующим образом:
switch ($_SERVER['HTTP_HOST']) {
case 'ourstagingurl.com':
$dbPassword = "blahblah";
break;
default:
$dbPassword = "blahblah";
}
или мы помещаем в файл .htaccess следующее, относящееся к конкретному сайту:
php_value dbPassword "blahblah"
Почему я не могу разрешить различия конфигурации с помощью CLI?
Когда скрипт запускается в CLI, суперглобальные переменные, такие как $_SERVER
, отсутствуют. Я мог include
файл конфигурации, используя абсолютный путь, но как я могу узнать, является ли сценарий живым или промежуточным? Я мог бы передать аргумент командной строки, который определяет среду, но я надеялся, что есть лучший способ?