Обработка ошибок подключения к БД в Cakephp - PullRequest
0 голосов
/ 20 марта 2012

В настоящее время я использую динамическое переключение баз данных в Cakephp из файла конфигурации базы данных.Я переключаюсь в зависимости от субдомена, а именно: TEST.mysite.com и PROD.mysite.com.

Как и где наилучшее место для тестирования и перенаправления при наличии подключения к базе данных?

Спасибо,

kSeudo

1 Ответ

2 голосов
/ 20 марта 2012

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

class DATABASE_CONFIG {

    public $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => '',
        'login' => '',
        'password' => '',
        'database' => '',
        'prefix' => '',
        'encoding' => 'utf8'
    );

    public $testDB = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => '',
        'login' => '',
        'password' => '',
        'database' => '',
        'prefix' => '',
        'encoding' => 'utf8'
    );

    public function __construct()
    {
        if (false !== stripos($_SERVER['HTTP_HOST'], 'test'))
        { // Use the test DB since 'test' is present in the server host
            $this->default = $testDB;
        }
    }
}

Чтобы проверить соединение, вы можете поместить следующее в конструктор app_model.php

public function __construct()
{
    parent::__construct();                

    $db =& ConnectionManager::getDataSource('default');
    if (empty($db->connection))
    {
            echo 'oh noes we werent able to connect';
            exit;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...