Кто тут жаловался, что развитие Ko3 замедлилось? Вчера Shadowhand опубликовал новый релиз Kohana под номером 3.0.5. Релиз в основном багфиксный, но добавлены и некоторые дополнительные возможности.
Сперва традиционные ссылки:
Скачать
Обсуждение на оф. форуме
Список изменений
Дополнительно приведу самые интересные (по крайней мере для меня) изменения:
- Добавлено свойство
Request::$current
, которое содержит текущий объектRequest
. Ранее что-то подобное было доступно только для контроллеров (свойство$this->request
). Также появился методRequest::current()
, который возвращает все то же свойствоRequest::$current
. - Добавлен файл с лицензионным соглашением. Факт сам по себе вполне обыденный, но в той задаче прозвучала фраза «I’m preparing a debian package of kohana«, что означает появление Kohana v3 в репозиториях Linux. Любопытно.
- Теперь можно удалять сразу несколько переменных из объекта Session. Например, так:
Session::instance()->delete('a', 'b', 'c')
. - Появился новый класс для ведения логов —
Kohana_Log_Syslog
. Из названия класса понятно, что он предназначен для отправки сообщений по протоколу syslog. Внутри используются стандартные функции PHP — openlog(), syslog() и closelog(). При открытии сислога используется параметр LOG_CONS, т.е. в случае неудачной отправки сообщения лог-серверу оно будет выброшено в output консоли. Добавляется логирование аналогично его «собрату»Log_File
(т.е. через bootstrap.php), а в качестве параметров в конструктор можно передатьident
(строковый идентификатор лога, добавляется к каждому сообщению, по умолчанию ‘KohanaPHP‘) иfacility
(тип лога, по умолчанию LOG_USER). Для записи доступны типы сообщений ‘ERROR‘ , ‘CRITICAL‘, ‘STRACE‘, ‘ALERT‘ , ‘INFO‘ и ‘DEBUG‘ (остальные будут вызывать ошибку). - В класс Security добавлены методы для предотвращения CSRF —
token($new)
иcheck($token)
. Первый предназначен для генерации токена (или получения уже сгенерированного токена, зависит от параметра$new
), второй проверяет соответствие переданного значения токена правильному (хранится в сессии). - Модуль Cache теперь включен в стандартный комплект модулей Ko3 (там уже были Codebench, Database, Image, ORM, Pagination, Auth и Userguide).
- Исправлена ошибка, не позволявшая использовать в методах
arr::get()
иarr::extract()
массивоподобные объекты (потомки класса ArrayObject, к которым можно обращаться как к обычным массивам). - Добавлен метод
count_last_query()
, о котором я недавно писал. - Метод
Form::textarea()
теперь добавляет атрибуты cols и rows, заполняя их значениями по умолчанию (50 и 10 соответственно). - Объект Database_Result теперь можно преобразовать в Database_Result_Cached с помощью метода
cached()
. Это позволит «отвязать» результаты поиска в БД от собственно базы данных (по этой причине объекты Database_Result нельзя сериализовать). - Тип сессии по умолчанию теперь можно изменить под себя. Раньше всегда использовался тип
native
(был прописан вSession::instance()
), а теперь выделено статическое свойство$default
, которое можно изменить под себя ДО вызоваSession::instance()
. Естественно, если передать тип сессии вручную в методinstance()
, то свойствоSession::$default
уже не будет анализироваться.
в принципе есть прикольные изменения (с сессиями хотя бы даже).
Зы: но я Коханой не пользуюсь, пилю свой fw.
Блина, заметил что вернулись старые добрые времена, когда я на транке 2.2 сидел. Теперь в сабмодулях master kohana core и даже не заметил что новая версия вышла.
И сразу после этого пагинаторы правильно заработали в подзапросах
А как Вы считаете, Иван, этих изменений достаточно, чтобы использовать этот фреймворк в качестве полноценного инструмента веб-разработчика?
Если нет, то что бы Вы добавили (изменили)…
@Zares Всегда найдется ложка дегтя! Я юзаю его уже не на одном проекте (5000 посещ в день) и проблем не испытываю. Пока всё, что мне нужно поддерживается, если нет, пишу свой модуль.
@Zares
Если рассматривать фреймворк как набор классов (код), то да — очень даже неплохой инструмент. Дополнительных модулей уже куча, практически на любой вкус. А вот с сопутствующими «ингридиентами», особенно с документацией и сайтом, уже не айс. Все-таки у солидного продукта и упаковка должна быть соответствующей
Вот задумался, что изучить: Kohana 3, Yii, Zend.
Посоветуйте, пожалуйста, какой из этих фреймворков более подходит под нагруженные проекты. Нужно сделать большой инет.магазин.
По аналогии можно спросить: «чем лучше добраться до соседнего города? На выбор: велосипед, мерседес и самолет.»
Все варианты способны решить поставленную задачу, но есть нюансы Наверное имеет смысл проверить наличие в данных фреймворках нужных Вам модулей (авторизация с использованием сторонних сервисов, платежные системы и т.д.), распространенность среди программистов (или Вы сами будете писать?) и т.д.
PS. По поводу размера магазина — я знаю проект на Kohana, который держит ~20000 посетителей в сутки (> 100k просмотров) .
biakaveron, спасибо.
Писать буду сам. В том то и дело, что в этих фреймворках есть все нужное. Дефицита функционала не наблюдается.
Наверно, главными критериями будут: мануалы, скорость, развитие.
Зенд — будет развиваться и существовать, пока есть php. С мануалами так же все в порядке. Но по отзывам, из-за большого количества инклюдов, на серьезных проектах, приходится шаматить уже с самим фреймворком.
Про Yii, могу сказать только, что развивается и маны есть добротные.
Про кохану, могу сказать, что код понравился. Легко читаем.
Собственно, на этом и остановился. И пока не знаю куда копать.