10 февраля 2010

CodeIgniter + HMVC маленький багфикс

  • написал: MpaK
  • 12
Знаете, есть маленькая неприятность обнаруженная совсем не вовремя.

В общих чертах у последнего CodeIgniter 1.7.2 загруженного из SVN и HMVC библиотеки для модульности (вы же надеюсь её используете если работаете с CI?) при РУЧНОЙ загрузки и подключении к базе данных есть баг, просто не грузится класс и не создается подключение.

Как показало «расследование» с пристрастием, ошибку содержит именно HMVC.

Давайте исправим. Открываем наш файл Controller.php из папки application/libraries нашего приложения. находим
public function database($params = '', $return = FALSE, $active_record = FALSE) {

и правим на
public function database($params = '', $return = FALSE, $active_record = <b>NULL</b>) {


можно было бы сохранить и всё бы заработало, но всё же код лишний присутствует и пугает своей бредовой старостью и неуважением к типам

дальше уничтожаем строку

if (class_exists('CI_DB', FALSE) AND $return == FALSE AND $active_record == FALSE)
    return;


и заменяем на вот эти две строки

$CI =& get_instance();
if (class_exists('CI_DB', TRUE) AND ($return === FALSE) AND ($active_record === NULL) AND isset($CI->db) AND is_object($CI->db)) return FALSE;


Всё, можно смело запускать и радоваться загружая свои любимые профили баз как захочется
$this->load->database( 'production' );
+1

Комментарии:0

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.