Переход с Kohana 3.2 на Kohana 3.3

Здраствуйте сегодня напишу о том как пришлось помучатся с переходом Kohana версии 3.2 на Kohana версии 3.3
Нормальных доков по переходу я к сожалению не нашел ни в нашем ни в буржуйском интернете.
Есть только список изменений от него я и отталкивался.

Пожалуй самое главное изменение при переходе это то что все имена файлов в папках classes/ должны начинаться с заглавной буквы.
Довольно муторно получается особенно если проект состоит из несколько сотен подобных файлов разбросанных по папкам application/,modules/.
Второе мое злоключение было связано с Git ,системной контроля версий ).
Не знаю что это было глюк или что-то другое ,когда я уже все почти сделал.
Я решил обновить репозиторий на Github’e так вот все мои переименования файлов в верхний регистр исчезли на локальном репозитории. Пользовался кстати TortoiseGit.
Третье — это версия PHP ,на большинстве хостингах стоит версия PHP 5.2 тут же для корректной работы требуется версия PHP 5.3.3 ,правда чтобы работало на PHP 5.2 как я читал требуется внести некоторые изменения ,проще говоря «костыли».

Теперь же дабы облегчить труд всем кто собрался переходить с версии Kohana 3.2 на Kohana 3.3 предложу некоторый формальный план действий:

1) Убедиться что версия PHP на вашем хостинге 5.3.3>= ,иначе ничего у вас не заработает.
2) Скачать дистрибутив версии Kohana 3.3
3) Переименовать все файлы чтобы они начинались с заглавной буквы text -> Text.php а папках
application/classes ,и файлы в своих модулях /modules/classes/ ,также сами названия папок в /classes/ т.е Controller ,Model.
Причем нужно переименовать и вызов моделей в контроллерах к примеру если у вас было:

<br />
$user=ORM::Factory('user');<br />
//Нужно переименовать в<br />
$user=ORM::Factory('User');<br />

Еще один нюанс нужно изменить файл конфига database.php
Там где
<br />
'type'       => 'mysql'<br />
// нужно так<br />
'type'       => 'MySQL'</p>
<p>'type'       => 'pdo',<br />
// нужно так<br />
'type'       => 'PDO',<br />

иначе вывалиться вот такая ошибочка ErrorException [ Fatal Error ]: Class ‘Database_Mysql’ not found над которой пришлось посидеть )
—Вообщем перенос совершенно рабочего проекта(как нам кажеться) на хостинг чреват геморроем с именами.

*Также можно использовать метод Kohana::auto_load_lowercase() для этого нужно прописать его в bootstrap(я правда разницы не заметил ,без переименования у меня все равно не работало)

<br />
spl_autoload_register(array('Kohana', 'auto_load_lowercase'));<br />

4) Перезалить папку /system/ со скаченного дистрибутива ,если вы конечно не правили напрямую в этой папке свои изменения.
5) Перезалить папку /modules/ со скаченного дистрибутива.
6) Обновить файлы index.php и application/bootstrap.php.
7) Переписать некоторые функции. К примеру редирект теперь осуществляться так
<br />
HTTP::redirect('редиректим');<br />

** Могут возникнуть также проблемы с работоспособностью некоторых собственных модулей ,таких как Pagination и др.

Подводя итог скажу что переход не будет легким ,придется много потрудиться.
В Kohana 3.3 появилось множество новых функций и методов. Также есть значительное изменение уже существующего функционала.(про них подробнее напишу позже)
Это не может не радовать ,но другой стороны плохо что по Kohana всегда так мало полезных доков ,это огорчает (
Поэтому подумайте стоит ли вам переходить на Kohana 3.3.
Тем более если у вас уже есть рабочий проект на Kohana 3.2 ,работает — не трогай )

P.S Данный пост будет обновляться так как не является полным ,есть слишком много нюансов.
Так же я буду рад если вы в комментариях напишете некоторые полезные инструкции для тех кто решил обновить версию фреймворка.

Вам также может понравиться ...