Наконец-то появились изменения в списке релизов Kohana. На растерзание изголодавшимся разработчикам выдали первый Release Candidate ветки 3.3. Изменений слишком много, чтобы их все привести разом, поэтому буду потихоньку публиковать статьи по отдельным модулям.
Отмечу, что переход с 3.2 легким не будет. Активно обсуждаемое внедрение стандарта PSR-0 привело к необходимости использовать заглавные буквы в названиях файлов и директорий, а также в именах файлов (сам PHP в общем-то не различает имена классов Foo
и foo
).
Полезные ссылки:
Скачать дистрибутив с официальной страницы загрузок пока нельзя. Скачайте zip-архив со страницы на github‘е (кнопка ZIP в верхнем левом углу), либо используйте команды Git:
git clone http://github.com/kohana/kohana.git kohana-v3.3.0-RC1
cd kohana-3.3.0-RC1
git checkout v3.3.0-RC1
git submodule update --init
на сколько я знаю php 5.2.x не поддерживается
а хостинг у меня никак не обновит софт, придется ждать хостера.
Что значит не поддерживается? Версия 3.3 имеет поддержку PHP 5.3, но и от 5.2 не отказывается. Насколько я знаю, полный переход на 5.3 будет в версии Kohana 3.4.
Эх, жаль нет кратного описания нововведений!
Тут, боюсь, кратким не отделаться Суть в том, что помимо просто закрытых тикетов (см. ссылку в новости) есть еще изменения. Вероятно, они смержились из других веток. Поэтому я махнул рукой на список изменений и буду по отдельности расписывать.
Отличная новость!
С нетерпением жду статей с описание изменений =)
я право не пробовал запускать, но
в Kohana 3.3 install.php есть запись
>> cуть в том, что помимо просто закрытых тикетов (см. ссылку в новости) есть еще изменения
Да я в принципе код проглядел быстро еще давно!
Очень понравилось, что убрали из Request вызов методов before() и after(), а сделали вызов метода execute(), который в свою очередь их запускает. Наконец то будет легкий механизм изменения поведения логики.
С нетерпением жду changelog в вашей версии =)
Забегая на перед, ORM сильно изменился?
Принципиально нет. Насколько я успел поглядеть, конечно. ORM будет сразу после ядра, вероятно вместе с Database.
С учётом вот этого обсуждения (http://dev.kohanaframework.org/issues/3178) приходим к выводу, что «Kohana 3.3 will have php 5.3 support.»
У меня на PHP 5.2 работа с исключениями уже поломалась
«Will have php 5.3 support» означает, что будет поддержка некоторых возможностей 5.3. Насколько я знаю, от обратной совместимости с 5.2 еще не отказывались.
А что за проблема с исключениями?
@biakaveron, ну Я же привел ссылку на тикет .. в результате принятия в Ko3.3 вот этого коммита (https://github.com/kohana/core/commit/8c5e8a8b577caea7a4c86cd7790e8eec557fdeec), появилась поддержка Extending Exceptions (http://php.net/manual/en/language.exceptions.extending.php). что в свою очередь сломало совместимость с PHP5.2. из тикета видно, что разработчики таскали его начиная с Ko3.1 и окончательно приняли в Ko3.3.
—
«А что за проблема с исключениями?» — проблема в PHP5.2 появилась из-за вот этого кода в конструкторе Kohana_Kohana_Exception:
parent::__construct($message, (int) $code, $previous);
3-ий параметр $previous появился PHP5.3 и старый PHP о нем ничего не занет и валится с ошибкой. Решил проблему вытащив данный класс в Application и добавив проверку на версию PHP следующим образом:
// Pass the message and integer code to the parent
if (version_compare(PHP_VERSION, ’5.3.0′) >= 0) {
parent::__construct($message, (int) $code, $previous);
} else {
parent::__construct($message, (int) $code);
}
Костыль конечно, но Я пока не готов перейти полностью на PHP5.3 из-за клиентских хостингов.
в Ko3.3 еще 2-а бага в классе Kohana_HTTP_Exception_401, но Я пока не могу тикет создать .. при создании аккаунта пароль почему-то не приходит. не подскажешь к кому обратиться, чтобы вручную активировали аккаунт?
К любому из администраторов (shadowhand, zombor, kiall и т.д.). ИМХО, быстрее получится через zombor.
Кстати, заметил в коде Kohana_Kohana_Exception, что туда добавили явное использование константы E_DEPRECATED. Это может вызывать ошибку в PHP<5.3
кроме дополнительного параметра в конструкторе класса Exception после мержа обнаружил зависимости с предопределенными константами.
В 3.3 добавили предопределенные константы :
http://php.net/manual/en/network.constants.php
http://php.net/manual/en/errorfunc.constants.php
…
Ссылки на них идут из нескольких Core классов.
В моем случае смержив код и просмотрев возможные варианты я решил использовать 3.2.2 для PHP 5.2.5