С Ko 2.3.4 на Ko 2.4

Просмотров: 2970Комментарии: 0
Web frameworks

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 96 (zipped ~38 KiB)

скачать патч / download patch 96 (zipped ~ 13 KiB)


При апдэйте пользуйтесь системами контроля версий или бэкапьте старые файлы! Please use VCS or file backup when updating!


Оставьте комментарий!


Используйте нормальные имена.

     

  

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

MaxSiteAuth. Войти через loginza

(обязательно)