Недавно вышла новая (и судя по всему последняя) версия из ветки 3.1. В данной статье я перечислю основные изменения.
Ядро
- Метод
Date::formatted_time()
не должен игнорировать переданный параметр$timezone
, даже если зона уже указана в метке времени (#3902). Request::factory()
игнорировал переданный параметр$injected_routes
(#4019).- Файлы с функциями UTF8 теперь можно расширять через каскадную файловую систему (ранее они жестко брались из
system
) (#4215). - Исправлен баг с невозможностью установить куки в
Request
черезRequest::cookie()
(#4278). - Первоначальный запрос «терял» куки (#4280).
- Глобальные переменные теперь можно изменять (#4431).
- Добавлены методы
File::mimes_by_ext()
,File::exts_by_mime()
иFile::ext_by_mime()
(#3167). - Метод
Arr::flatten()
не объединяет значения для индексированных (не ассоциативных) массивов (#3326). - Актуализация справочника для класса
Inflector
(#4322). Добавлена нестандартная параrealease => releases
(#3659).
Database
- В настройках подключения к БД не обязательно указывать параметр ‘table_prefix’ (#4033).
- Некоторые классы (
Model_Database
,Session_Database
,Config_Database
) по умолчанию не использовалиDatabase::$default
(#4289). - Исправлен баг с неправильной обработкой полей типа
enum
(#4393).
ORM
- При выборке записей из таблицы теперь явно указываются имена полей (вместо
SELECT *
). Ранее были проблемы с виртуальными таблицамиsqlite
(#3587). - Вызов
clear()
не сбрасывал свойство$_loaded
(#4071). - При загрузке связанной через BelongsTo модели необходимо проверять установленный внешний ключ, чтобы не извлекать данные по NULL-значению. (#4406).
- Модель должна проходить валидацию, если она не изменилась, но была передана внешняя валидация (#4424).
- В таблице
user_tokens
для поляexpires
добавлен индекс (поле используется при очистке токенов) (#3031). - Очистка токенов вызывала несуществующий метод
delete_all()
(#3714, #4070). - В таблице
user_tokens
полеcreated
добавлено в$_created_column
, т.е. будет заполняться автоматически (#3889). - В метод
Auth_ORM::get_user()
добавлен параметр$default
(значение по умолчанию) (#4018). - Если в конфиге отсутствует параметр
hash_key
, методAuth::hash()
должен выбрасывать исключение (#3542).
OAuth
- Добавлены обязательные параметры в объект
Oauth_Request_Credentials
(#4004). - В заголовки авторизации добавлен параметр
realm
(#4171).
Cache
- Поправлена ошибка в драйвере
Memcache
(попытка использоватьprotected callback
) (#3332). - Если директория для хранения файла кэша не существовала, выбрасывалось неперехватываемое исключение (PHP 5.2) (#3419).
Image
- Для метода
Image::resize()
добавлен новый вариант:Image::PRECISE
(#3584). Это нечто противоположное Image::AUTO: пропорции тоже сохраняются, но изображение не вписывается в указанные габариты, а как бы накрывает его, совпадая с одним из размеров. Т.е. после такого ресайза можно обрезать изображение и получить нужную превьюшку без искажения.
Userguide
- Контроллер
Controller_Userguide
перенесли вKohana_Controller_Userguide
(для расширяемости) (#3376). - Поправлен поиск в API browser (#3665).
- Прямые вызовы функции
Markdown()
заменены на оберткуKodoc_Markdown::markdown()
(#3695). - Исправлена ошибка с (несуществующими) подключаемыми шаблонами Kohana (#4030).
- Используемые в шаблоне идентификаторы блоков могут конфликтовать с методами классов (Userguide API). Исправлено добавлением префиксов
kodoc-
(#4037). - Отключение API browser приводило к выбросу
Kohana_Exception
из-за неизвестного роута (#4046). - Добавлена возможность отключить комментарии в Userguide (по умолчанию смотрит на
Kohana::$environment
) (#4274). - Userguide должен загружать только файлы со стандартным расширением (константа
EXT
, обычно ‘.php’) (#4358). - API browser должен показывать реализованные интерфейсы (#3486).
- Добавлены статьи по работе с модулем Image (#3970).
- Добавлена статья по использованию Kohana в качестве сторонней библиотеки (#4006).
- Значительно расширена статья по использованию фильтров в ORM (#4056).
Заключение
Как-то так. В следующей статье опишу изменения в 3.2.1-3.2.2. Частично они будут пересекаться с упомянутыми сегодня, но будет и кое-что новое.
Комментарии (0)
Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.