Мигрирую на Kohana 3.2

kohana Наконец-то после целого года работы на Kohana 3.0 я, аки крот вылезший на поверхность, решил оглядеться и наконец освоить Kohana 3.2 (которая вышла, страшно подумать, больше года назад!!!). Естественно, первое желание перенести привычные модули и наработки на новую платформу, в связи с этим пост, который может быть полезен таким же кротам как я, застрявшим и истории.

Учитывая, что я работаю на 3.0, чтобы мигрировать на 3.2, сначала надо мигрировать на 3.1. В основном это описано тут и тут. После этого двигаемся дальше.

Config
=======================

В Kohana3.2 сильно изменилась работа с конфигами, там добавилось много вещей сомнительной полезности, но кроме этого изменился способ подключать конфиги.

Чтобы по-быстрому адаптировать приложение к новой версии можно просто заменить

Kohana::config('config_name') 

на

Kohana::$config->load('config_name')

Передача параметров в контроллер
=======================
Это оказалось очень неожиданным и неприятным сюрпризом

Как было раньше:

public function action_dosomething($param = NULL)
{

А теперь надо делать так:

public function action_dosomething()
{
$param = $this->request->param('id');

Что значит id — это название передаваемого параметра в дефолтном роуте в bootstrap.php, который обычно никто не меняет. Ясен перец, если Вы поменяли его, или используете нестандартный роут, то и название параметра возможно будет другим.

И вообще название id — не всегда верно по смыслу. Поменять его можно там же в роутах. И понятно, что в разных методах разных контроллеров передаваемые параметры могут различаться по смыслу, так что возникает соблазн наклепать роутов на каждый метод каждого контроллера, тем более что в официальной документации написано — не стесняйтесь делать столько роутов, сколько нужно вашему приложению!

С одной стороны — ещё одна возможность наделать ошибок, а с другой — дело вкуса!

UPD 01.02.2014
=================
И да. Обязательно надо сделать это:

ALTER TABLE `users` CHANGE `password` `password` CHAR( 100 );

Вместо резюме
=================
Этот пост хоть и полон брюзжания по поводу перехода, никак не должен быть истолкован пытливым читателем как негативная оценка. Напротив, я искренне верю, что новая версия принесёт ещё много разных ништяков, о которых мы пока не знаем.

PS: А не пора ли с моим длинным циклом программирования начинать мигрировать на 3.3?

Мигрирую на Kohana 3.2: 8 комментариев

  1. Дон

    То есть вам понадобился год чтоб разобраться с коханой?

  2. altesack Автор записи

    Нет. До этого год я делал проект на Kohana 3.0. И чтобы не путать мозги я не трогал новейшие версии.

    Отчасти соглашусь с Вами, что топик несколько запоздалый. Да.

  3. Дон

    @ altesack: Ну я тоже хотел бы в структуре коханы разобраться по лучше)

  4. Дон

    прива а напишите как реализована безопасность в кохане? И может ли кохана защить от внедрения на страницу сайта вирус и прочей гадости

  5. altesack Автор записи

    Кохана сама по себе не защитит никак, если программировать криво.
    Могу посоветовать только следующее

    1. Однозначно нужно убирать программный код из доступной папки www. Кохана
    это позволяет. И не давать доступ на запись папкам с кодами (только папки с кешем и )

    2. Пользоваться построителями запросов и ORM, ибо там предусмотрена защита от инъекции

    3. Всё-равно фильтровать все пользовательские данные.

    Возможно кто-то ещё что-нибудь добавит.

    PS: Если каким-то образом злоумышленник узнал Ваш FTP пароль — то всё это бесполезно.

  6. Den

    А я мигрирую на symfony2. Что-то релизы коханы подкачивают…

  7. Дон

    @ Den: А можете написать какой самый сложный и какой самый легкий фреймворк?

  8. Дон

    А можете сделать пост как сделать админку на кохане? И как вам можно задать вопрос ну что не писать в коментах

Комментарии запрещены.