Не успела докачаться недавно вышедшая версия 3.2.1, как разработчики объявили о релизе 3.2.2 (zip). По сути версия содержит только одно исправление, но зато какое! Фреймворк содержал дыру, позволявшую выполнять произвольный PHP-код. Об этом недавно писали на Хабре, и по итогам обсуждения задачи #4591 исправление вышло отдельным релизом. Фреймворк можно поправить с помощью вот такого переопределенного класса URL.
В версии 3.2 разработчики поменяли поведение метода Request->uri() (#3690). В 3.0-3.1 этот метод позволял получить «соседний» URI с применением небольших изменений, например: Далее…
Добавлены методы has_any($alias, $far_keys = NULL) и count_relationships($alias, $far_keys = NULL). Первый метод определяет, имеет ли модель хотя бы одну запись в указанной связи $alias. А метод count_relationships() возвращает общее количество записей по данной связи. Например, если в системе имеются роли ‘login‘ (ID=1) и ‘admin‘ (ID=2), и пользователь $user имеет только роль ‘login‘, то:
Доработок в этом модуле не слишком много, но я решил выделить их в отдельную статью. Все-таки это один из основных модулей Kohana.
Базовые изменения
Исправлено зацикливание с последующей ошибкой out of memory. Если в системе добавлен Database Config Reader, то он теперь не пытается считывать настройки подключения к БД (отсекается группа настроек ‘database‘). #4316
Для определения необходимости ведения статистических замеров (profiling) модуль теперь использует централизованную настройку Kohana::$profiling (устанавливается в Kohana::init()). В 3.2 модуль Database имел собственный параметр ‘profiling‘ в конфиге. #4203
В методах compile($db) семейства классов Database_Query параметр $db сделан опциональным. Кроме того, он может являться не объектом Database, а строкой (т.е. именем соответствующего профиля в конфиге). Такая логика уже присутствовала в методе execute($db). #3872
В предыдущей статье я описал основные изменения ядра фреймворка, затронувшие механизм обработки запроса-ответа. Пришло время описать прочие новшества, достойные нашего внимания.
В ветке 3.3 продолжилось дальнейшее развитие классов, участвующих в выполнении запросов (Request, Response, Controller, HTTP и т.д.). Так как поменялись некоторые важные нюансы, решил выделить изменения в отдельную статью. Далее…
В списке официальных модулей Kohana наконец-то прибавление. RC1 для Kohana 3.3 содержит новый модуль Minion. Он предназначен для выполнения задач через CLI (обычно это задачи для Cron‘а). Далее…
Наконец-то появились изменения в списке релизов Kohana. На растерзание изголодавшимся разработчикам выдали первый Release Candidate ветки 3.3. Изменений слишком много, чтобы их все привести разом, поэтому буду потихоньку публиковать статьи по отдельным модулям. Далее…