Вчера вышел новый минорный релиз Ko3, версия 3.0.2. И в тот же день (уже по традиции) в догонку выложили 3.0.2.1 (обновлены модули Auth и ORM, добавлен еще один багфикс). Из интересного:
- Теперь метод
ORM::save()
также сохраняет и поля belongs_to (задача). Ранее в методе__set()
изменение таких полей не приводило к добавлению его в свойство$_changed
, соответственно сохранение изменений не происходило. - Язык теперь можно устанавливать не напрямую через
I18n::$lang
, а с помощью методаI18n::lang()
, в котором произойдет проверка введенного языка и приведение его к нужному виду (задача). Например, помимо правильного ‘ru-ru‘ теперь подойдут ‘RU-RU‘, ‘ru_ru‘, и даже ‘rU RU‘. - Радуйтесь те, кто пользуется связями HABTM без промежуточной модели. Теперь метод
ORM::add()
поддерживает дополнительный параметр$data
, в который можно «впихнуть» поля промежуточной таблицы на сохранение. Собственно, вот само описание. - Напоследок — не самый очевидный багфикс. При установке значения для полей ORM убрано сравнение с предыдущим значением. Судя по всему, это связано с теми редкими случаями, когда модель содержит дефолтные значения (т.е. при ее заполнении значение по сути не поменялось), что не дает ее сохранить. Так что теперь будьте внимательны — любой вызов
__set()
приводит к пометке модели как измененной. Могут появиться лишние запросы к БД.
Полный список изменений можно посмотреть тут.
А теперь внимание! После обновления фреймворка скорее всего перестанет работать ORM. Проблему уже нашли, надо применить фикс к модулю Database.
Как то все не получается довести до ума Database и ORM модули в kohana. По этому спрыгнул на Doctrine, а так то сегодня проапдейтил рабочий проект и ничего не поломалось, так что поздравим разработчиков с новым релизом.
Подозреваю, что до версии 3.1 подобные потрясения будут регулярными