Конфигурация базы данных CodeIgniter + Doctrine CLI - PullRequest
1 голос
/ 25 июля 2011

Мой config/database.php файл содержит простое условие, которое заменяет учетные данные базы данных на основе сервера, на котором он живет:

$server = $_SERVER['SERVER_NAME'];
if(($server=='localhost')||($server=='127.0.0.1'))
{
    $db['default']['hostname'] = 'MY_LOCAL_IP';
    $db['default']['username'] = 'MY_LOCAL_USERNAME';
    $db['default']['password'] = 'MY_LOCAL_PASSWORD';
    $db['default']['database'] = 'MY_LOCAL_DB';
}
else 
{
    $db['default']['hostname'] = 'MY_PROD_IP';
    $db['default']['username'] = 'MY_PROD_USERNAME';
    $db['default']['password'] = 'MY_PROD_PASSWORD';
    $db['default']['database'] = 'MY_PROD_DB';
}

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

Но при вызове ensure-production-settings в CLI интерфейс кричит на меня, заявляя, что SERVER_NAME является неопределенным индексом. Хотя это не большая проблема, я подумал, что Doctrine может молча жаловаться на то же самое в фоновом режиме во время выполнения моего приложения.

Полагаю, я мог бы создать два отдельных файла database.php, но до этого у кого-нибудь возникали проблемы с CLI Doctrine после изменения config/database.php?

Ответы [ 2 ]

1 голос
/ 25 июля 2011

Ну $_SERVER['SERVER_NAME'] не установлен в Режим CLI , поскольку эта информация предоставляется CGI-интерфейсом вашего веб-сервера (или самим веб-сервером при использовании php в качестве модуля).

Почему бы вам не использовать окружения для этого?

0 голосов
/ 25 июля 2011

Не нарушая того, что вы сделали прямо сейчас, в качестве исключения вы можете определить постоянные значения для CLI, так как он не распознает некоторую переменную среды ...

if(($server=='localhost')||($server=='127.0.0.1'))
{
    $db['default']['hostname'] = 'MY_LOCAL_IP';
    $db['default']['username'] = 'MY_LOCAL_USERNAME';
    $db['default']['password'] = 'MY_LOCAL_PASSWORD';
    $db['default']['database'] = 'MY_LOCAL_DB';
}
else 
{
    $db['default']['hostname'] = 'MY_PROD_IP';
    $db['default']['username'] = 'MY_PROD_USERNAME';
    $db['default']['password'] = 'MY_PROD_PASSWORD';
    $db['default']['database'] = 'MY_PROD_DB';
}

// To catch CLI
if(defined('STDIN'))
{
    $db['default']['hostname'] = 'MY_CLI_IP';
    $db['default']['username'] = 'MY_CLI_USERNAME';
    $db['default']['password'] = 'MY_CLI_PASSWORD';
    $db['default']['database'] = 'MY_CLI_DB';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...