Обнаружение, когда CodeIgniter не может подключиться к базе данных

У меня есть экземпляр CI, который подключается к базе данных и проверяет разрешения перед обслуживанием страниц. Если страница недоступна для текущего пользователя, она перенаправляет на страницу входа.

Страница входа, очевидно, имеет разрешения, установленные таким образом, что она доступна для всех пользователей.

После недавнего сбоя сервер базы данных снова заработал на другом IP-адресе (спасибо Amazon, EC2). Это привело к тому, что CI не смог проверить разрешения для любой страницы, включая вход. Поскольку код предполагает, что все, кроме «Да», является «Нет», он перенаправляется на «Войти». В результате получился бесконечный цикл перенаправления.

Хотя эта точная проблема не должна повторяться (статический эластичный IP-адрес), я хотел бы определить, когда соединение с базой данных не работает, и обработать его соответствующим образом.

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

Итак,

Как я могу запросить состояние соединения с базой данных изнутри CI? Должен ли я запускать бесполезный запрос и проверять, получу ли я результаты, или есть более элегантное решение?

Редактировать: в настоящее время проверка выполняется в хуке:

$hook['post_controller_constructor'] = array(
                                'class'    => 'AuthHook',
                                'function' => 'ValidateCredentials',
                                'filename' => 'auth.php',
                                'filepath' => 'hooks'
                                );

5
задан Community 23 May 2017 в 12:07
поделиться