Как эффективно использовать переменную среды

Поэтому сейчас я использую две основные библиотеки для проекта 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 на своих серверах.

0

Решение

Вы смотрели на 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"

Это должно сделать это.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]