Поэтому сейчас я использую две основные библиотеки для проекта PHP: php-activerecord и slim micro framework. Я также являюсь пользователем бродяги и марионетки, потому что мне нравится держать вещи в синхронизации. Единственное, с чем я не могу обернуться в данный момент, это управление различными средами, в которые идет мой код. Кажется, что две библиотеки, о которых я упоминаю, пытаются дать механизм для управления этим, но я не вижу, куда мне поместить такую информацию.
//This is the config for php-AR
ActiveRecord\Config::initialize(function($cfg){
$cfg->set_model_directory('models');
$cfg->set_connections(array(
//This is what I am interested in
'development' => 'mysql://username:password@localhost/database_name'));
});
Как и в предыдущем случае, Slim имеет настройки окружения. Все эти параметры среды основаны на конфигурационном файле, который просто проходит через суперглобальный $ _SERVER?
Как это обычно управляется? Я в основном любопытен для больших сред.
Редактировать 1) Просто чтобы быть немного более понятным. Мне любопытно, что логика добавлена в код и настройки на используемых серверах. Я знаю, что это немного широко, так что смотрите ниже.
Я видел много примеров использования .htaccess для извлечения переменных среды.
Очевидно, как я уже говорил, в PHP есть суперглобальная переменная $ _SERVER, с которой я могу строить логику.
Благодаря Diederik я теперь знаю, что могу использовать ~ / .bash_profile на своих серверах.
Вы смотрели на readme для ActiveRecord? В нем четко указано, как этого добиться.
В приведенном выше коде вы уже определили базу данных разработки. Вы можете просто добавлять новые к этому столько, сколько хотите. Единственный бит, который вам придется изменить после загрузки на другой сервер, — это часть:
ActiveRecord\Config::initialize(function($cfg)
{
$cfg->set_default_connection(your_environment);
});
Теперь ваше_окружение должно быть определено в первую очередь. Это может быть достигнуто, делая что-то вроде:
$cfg->set_default_connection(getenv('APP_ENV'));
И тогда вам просто нужно определить эту переменную среды. Это можно сделать несколькими способами. Примером может быть следующее ~/.bash_profile
:
export APP_ENV="development"
Это должно сделать это.
Других решений пока нет …