Моя миграция с Kohana 3.0.9 на 3.1.1 не удалась. Старался-старался, но не срослось. В 3.1.1 я не нашёл, а возможно их и нет многих нужных мне функций, что создаёт ощущение сырого продукта, который ещё будет дорабатываться. Поэтому свои работающие проекты я пожалуй поделаю на 3.0.
Тем не менее за новой версией будущее и я хочу сохранить в качестве шпаргалки на будущее мой сегодняшний опыт.
Что именно поменялось довольно подробно расписано в блоге Ивана Броткина. Здесь я опишу быструю шпаргалку для ленивых, то с чем я столкнулся.
Валидация
======================
Попробуйте для начала просто заменить по всем текстам слово Validate на Validation.
У меня сработало. А вообще, Валидация переработана существенно, и если она у вас хитрозакрученная – без внимательного чтения мануалов не обойтись.
Request
======================
Теперь нет Request::instance() Ему в 3.1 соотверствует конструкция Request::$initial.
Например я люблю делать редиректы:
1 2 3 | Request::instance()->redirect('some/thing'); //меняем на Request::$initial->redirect('some/thing'); |
А ещё я очень люблю на каждом шагу проверять, а какое у меня нынче URI?
1 2 3 | $this->request->uri // меняем на $this->request->uri() |
Response
========================
Теперь Responce – отдельный объект, да ещё и со своим новым норовом.
1 2 3 | $this->request->response=$view; //меняем на $this->response->body($view); |
Ложка дёгтя, или Чего мне не хватило в 3.1.1
========================
1) Меня очень напрягло отсутствие уже привычной команды
1 | Kohana::debug(); |
Вместо неё я пока юзал
1 | Kohana_Debug::dump(); |
В принципе сойдёт, хотя не совсем то.
2) Меня насторожило отсутствие привычного
1 | Security::xss_clean() |
Никакой замены не нашёл.
3) Но окончательно меня добило отсутствие очень важной функции
1 | Model_Auth_User::change_password |
Замены тоже не нашёл. Видимо пока не реализовали эту функцию? Будем ждать.
Посты по теме:
RSS-подписка
А нафига Security::xss_clean()? Правильно сделали, что убрали. Данные нужно экранировать, а не “чистить”.
Убрали, то убрали, а чем заменили???
htmlspecialchars() видимо)
Собственно Security::xss_clean более не нужна, поскольку авторы пошли более логичным путём и реализовали функционал HTMLPurifier через этот модуль https://github.com/shadowhand/purifier, а не простым экранированием обошлись.