YiiFeatured-825x510

Обзор beta версии Yii 2.0

В преддверие выхода новой версии популярного фреймворка Yii мне захотелось разобрать его сильные и слабые стороны, а так же выяснить чего нам стоит ожидать в новой версии.

Буквально совсем недавно было анонсировано public preview новой версии всем известного фреймворка Yii 2.0, исходный код которого был размещен на github. Код фреймворка разрабатывается уже более двух лет в закрытом режиме, поэтому до недавнего времени мало что было известно широкой публике. На данный момент он достаточно сырой т. к. находится в стадии активных изменений, потому даже сами авторы не рекомендуют его использовать в своих проектах, однако просто познакомиться с ним поближе можно уже сейчас.

Если есть желание хотя бы вкратце ознакомиться с тем, что уже готово на данный момент, какие вещи полноценно реализованы, понять в каком направлении движется развитие, то это можно узнать изучив Yii2 Development Roadmap.

Если говорить об основных отличиях от старой версии, то к ним относится во-первых отсутствие обратной совместимости с Yii 1.1, а во-вторых пересмотрена концепция архитектуры классов, например, были убраны некоторые сущности, такие как: CUserIdentity, CDbCriteria, CClientScript и некоторые другие.

Была реализована поддержка шаблонизаторов, таких как Twig и Smarty. Для работы фреймворку теперь требуется PHP версии 5.3.8 и выше, это влечет за собой свои последствия, в большинстве случаев приятные, например, возможность использования анонимных функций. Нельзя не упомянуть то, что в новой версии стали использоваться пространства имен и это ощутимый плюс, особенно когда проект разрастается до исполинских масштабов. В именах классов больше не используется префикс «С», наименования классов стали соответствовать структурам папок. Вложенность при этом не будет составлять больше двух-трех уровней, потому не стоит переживать, что объявления классов станут слишком огромными, к тому же их станет легче запоминать.

Родительский класс CСomponent, который используется в основе любого компонента, был разбит на несколько сущностей: \yii\base\Object — упрощенный класс, который реализует определения атрибутов через сеттеры и геттеры и \yii\base\Component — представляет собой расширение предыдущего класса с реализованной поддержкой событий и поведений. И всё это лишь часть глобальных изменений, которые были реализованы в новой версии, если вдаваться в частные случаи, то об изменениях можно рассказывать вечно.

Подводить итоги и выделять плюсы и минусы, вникая в подробности пока еще рано, до применения Yii 2.0 в реальных проектах пока еще далеко, ему предстоит долгий путь тестирования и исправления ошибок, однако в целом уже сейчас можно получить представление о том, что может получиться в итоге. Лично для меня большим плюсом на данный момент является активно развивающаяся документация по новой версии фреймворка. А из основных минусов, которые сразу бросаются в глаза, можно выделить несовместимость с предыдущей версией и это влечет за собой то, что имеющиеся на данный момент расширения не будут работать с новой версией на момент выхода, чего будет очень сильно не хватать для полноценной работы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>