Первый взгляд на Yii3

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

Стандартизация (PSR)

Новая версия Yii теперь будет идти в фарватере PSR, что не может не радовать. Использовать сторонние библиотеки стало проще.

Разбиение на пакеты

Третья версия фреймворка, можно сказать, развернулась на 180 градусов в отношении внутреннего устройства, т.е. ранее был монолит, теперь набор пакетов. Этот момент также дает как плюсы, так и минусы, причем, и для пользователей и для самого фреймворка. Для пользователей (разработчиков) появилась возможность использовать пакеты разработанные командой Yii в других проектах с меньшими трудозатратами, но теперь придется больше заниматься конфигурацией. Для команды разработки Yii стало проще поддерживать и обновлять отдельные пакеты, но репозиториев стало больше и, соответственно, больше времени необходимо уделять логистике.

Удален сервис-локатор

В третьей версии Yii не будет сервис-локатора как в первой и второй версии. С одной стороны это хорошо, так как разработчикам придется писать более гибкий код, а с другой стороны стало сложнее в сжатые сроки реализовать функционал на скорую руку (это нередко выручало).

Переработан контейнер внедрения зависимостей

В Yii2 уже был контейнер внедрения зависимостей, но он заточен под Yii и поэтому плодил много библиотек-оберток. Теперь же DIC нормально работает с любыми PSR-совместимыми библиотеками из мира PHP.

Перспективы Yii (ИМХО)

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

Первая причина — ниша фреймворка. Yii1/Yii2 были и остаются фреймворками в большей степени для быстрой разработки веб-сервисов, причем с наличием опытных разработчиков качество кода было довольно высоко, так как для этого были все средства (тот же DI например). При использовании Yii 1&2 можно было выбирать интенсивность разработки самостоятельно, писать быстро (использовать встроенные виджеты, jQuery, gii и множество готовых рабочих решений) или размеренно (проектируя доменную область приложения, а потом привязывая всю инфраструктуру и интерфейсы). Третья же версия оставляет мало шансов на первый путь, а это подавляющее большинство проектов, так как малых проектов по умолчанию больше чем крупных. Можно сказать Yii отворачивается от небольших проектов и поворачивается к большим.

Вторая причина — разбиение на пакеты. Вторая причина немного странная, но это только на первый взгляд. Как вообще разбиение на пакеты может помешать развитию популярности фреймворка? Дело в том, что каждый фреймворк имеет свои плюсы — уникальный функционал. У Yii таких особенностей много, взять хотя бы встроенный RBAC, очень удобная, гибкая и мощная вещь, которой к ранее сказанному легко пользоваться, буквально через 20 минут знакомства вы сможете реализовать сложную систему прав доступа. Теперь этот функционал доступен не только в Yii, но и в любом другом фреймворке. Тоже самое относится и ко множеству других пакетов из арсенала Yii3. Подобная ситуация может привести к проблемам фреймворка Zend, который кстати уже закончил своё существование (выделился в отдельный проект), но его удобные пакеты все еще используются разработчиками. Надеюсь с Yii3 такого не случится.

P.S.

Пока рано делать какие-либо серьезные выводы, так как фреймворк сейчас активно разрабатывается (на момент написания статьи шкала готовности фреймворка не доходила и до 30%) и все может сильно измениться. Скорее всего, через полгода-год мы получим добротный аналог Laravel’a с хорошей документацией и развитым RU-сообществом, что тоже очень важно. Время покажет.

Полезные ссылки

07.05.2021

Категория(-и): Статьи

# # #

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