Briefly in English:
I've decided to step-by-step move from 2.3.4. to 2.4. Below the most painless (for my project) updates are described. It is step #1.
Поскольку версии Kohana 2.3.5, по-видимому, не предвидится, решил потихоньку переползать на 2.4. Бегло просмотрев изменения, понял, что оно того стоит (например, в 2.3.х класс Kohana_Core объявлен как final, то есть его затруднительно расширять, а в 2.4 уже вполне можно). Тем не менее, поскольку проект достаточно большой, буду делать не все сразу, наименее травматичным способом.
UPD Узнал о сегодняшней трагедии в Москве. Соболезную всем тем, кто потерял там своих родных и знакомых. Не сдавайтесь и не отчаивайтесь.
Итак, первым пробным шаром пропатчил следующие файлы (буду указывать только изменения методов):
system/libraries/Image.php
system/libraries/drivers/Image.php
system/libraries/drivers/Image/GD.php
system/libraries/drivers/Image/GraphicsMagick.php
system/libraries/drivers/Image/ImageMagick.php
- добавился метод determine_orientation() -- автоматом определяет ориентацию картинки
- добавился метод composite($overlay_file, $x, $y, $transparency), осуществляющий наложение одной картинки на другую
- в методы save($new_image = FALSE, $chmod = 0644, $keep_actions = FALSE, $background = NULL) и render($keep_actions = FALSE, $background = NULL) добавился параметр $background. Насколько я понял, работает только с драйвером ImageMagick
system/libraries/Input.php
- конвертнул не полностью из-за пока не разрешенных зависимостей
- устранена XSS-уязвимость (баг #2669). За это время там еще кое-что было устранено по этой линии, попозже добавлю
system/libraries/Encrypt.php
- метод decode($data) работает с параметром $strict = TRUE в base64_decode($data, $strict)
system/libraries/Model.php
- добавился статический метод factory($name, $args = NULL, $multiple = FALSE)
system/helpers/arr.php
- добавился метод get(array $array, $key, $default = NULL), возвращающая array[key]
- методы binary_search() и range() не удалял для обратной совместимости
system/helpers/date.php
- в метод offset($remote, $local = TRUE, $when = 'now') добавился параметр $when, указывающий в какой момент времени необходимо считать разность
system/helpers/download.php
system/helpers/format.php
- добавился метод number($number, $decimals = 0), позволяющий форматировать числа в соответствии с локалью
- добавился метод color($str = ''), форматирующий шестнадцатиричную запись цвета
system/helpers/inflector.php
- добавился метод possessive($string), ставящий слово в притяжательном падеже (англ.)
system/helpers/remote.php
system/helpers/security.php
- в метод xss_clean($str, $tool = NULL) можно передавать название способа очистки $tool. Правда, пока я не проапдэйтил полностью библиотеку Input, поэтому лучше воздержаться. Но обратно совместима.
system/helpers/valid.php
- добавился метод range($number, array $range), проверяющий число $number на нахождение в диапазоне $range
- метод standard_text($str) не удалял для обратной совместимости
system/config/inflector.php
system/config/locale.php -- временная зона должна быть установлена; по дефолту = ini_get('date.timezone')
system/config/sql_types.php -- добавились типы данных
Пока что полет нормальный
скачать папку system / download system folder 103 (zipped ~38 KiB)
скачать патч / download patch 106 (zipped ~ 13 KiB)
При апдэйте пользуйтесь системами контроля версий или бэкапьте старые файлы! Please use VCS or file backup when updating!