Yii VS Laravel: за каким фреймворком будущее

На западе популярнее Laravel, в СНГ - Yii. Команда Artjoker решила выяснить, стоит ли гнаться за зарубежными трендами или же нет. На каком фреймворке разрабатывать сайты?

Дисклеймер. В статье мы озвучиваем свое субъективное мнение, основанное на личном опыте и сравнительном анализе. Если вы не согласны, спецы Artjoker с удовольствием подискутируют ;)

Натолкнулись на статью 2017 года о востребованности PHP программистов на рынке труда. Да, она - старая, но в 2018 картина изменилась не существенно. В материале приведена интересная зависимость количества вакансий от типа фреймворка.

Диаграмма для СНГ -

Yii VS Laravel: за каким фреймворком будущее

Данные по западному рынку -

Yii VS Laravel: за каким фреймворком будущее

Зачем мы приводим эту информацию? Она позволяет сделать выводы как заказчикам, так и исполнителям.

Рассмотрим обе стороны. Если вы программист и хотите быть востребованным, вам необходимо либо:

  • осваивать популярные инструменты;
  • смотреть в завтрашний день и выбирать перспективные направления.

Если вы заказчик, вам стоит держать в фокусе несколько моментов:

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

Именно поэтому важно сравнивать фреймворки. Посмотрите на диаграммы еще раз. CodeIgniter можно смело исключить. Он некогда был на волне, а сейчас его вытеснили более прогрессивные решения. Большое количество заказов объясняется наличием проектов, которые нуждаются в саппорте. Со временем владельцы сайтов переедут и спецы по CodeIgniter останутся без работы.

В сухом остатке выделяются 2 лидера - Yii и Laravel. Причем на территории СНГ пальма первенства принадлежит Yii. Нужно разбираться, стоит ли отечественным заказчикам и разработчикам гнаться за западными трендами или отдать предпочтение проверенному на родине фреймворку?

Плюсы и минусы Laravel

Преимущества Laravel

  • удобно читаемые Laravel-коллекции и хелперы по работе с ними;
  • storage - отдельное место в структуре для хранилища;
  • eloquent - ORM для работы с базой, реализация шаблона ActiveRecord. Помимо стандартных CRUD-операций, в ней есть: методы доступа и мутаторы, безопасное удаление, области запросов, отношения, наблюдатели модели;
  • artisan - позволяет управлять командной строкой,
  • простая маршрутизация, валидация входящих параметров;
  • интегрированный сборщик scss и скриптов (elixir);
  • интегрированный шаблонизатор Blade;
  • очереди заданий, планировщик задач;
  • миграции и сиды;
  • интегрированная система модульного тестирования phpunit;
  • поддержка WebSockets для создания настоящих интерактивных приложений;
  • ACL плагины;
  • высокая популярность на западе;
  • частые релизы новых версий.

Недостатки Laravel

  • отсутствуют интегрированные шаблоны интерфейсов.

Личное мнение

“Love beautiful code? We do too” - цитата с официального сайта соответствует действительности. Laravel - клад для любителей красивых решений. Код читается легко, структура файлов будет ясна даже новичку. Кстати, есть потрясные видеоуроки, основы бесплатные.

Laravel - дружественный фреймворк. Встроенные artisan-команды здорово ускоряют процесс разработки.

Ключевой момент - правильная архитектура базы данных. Во время разработки каждый из доступных роутов желательно покрывать тестами, наполнять БД тестовыми данными, придерживаться основы философии Laravel - лаконичности. Чтобы избежать нагромождения в методах контроллеров нужно использовать классы-репозитории, мутаторы и акселераторы в моделях.

Laravel дает разработчику большую свободу в выборе решений и способов их реализации. Это одновременно и хорошо, и плохо. С одной стороны облегчается процесс кодинга, с другой - увеличивает трудозатраты на разработку и согласование конвенций.

Что нужно знать заказчику о Laravel

Выбирая Laravel, вы получаете наиболее перспективный (на сегодняшний день) PHP-фреймворк. Проекты на нем, при грамотной разработке, легко расширяются.

Плюсы и минусы Yii

Преимущества Yii

  • Active Form - создание форм по свойствам модели;
  • использует общепринятую архитектуру и методы;
  • интегрировано множество стандартных решений для интерфейсов (Kartik);
  • встроены автотесты форм и безопасности;
  • сравнительно просто изучить;
  • реализован визуальный генератор CRUD, контроллеров, моделей (gii).

Недостатки Yii

  • новые версии выходят редко;
  • склеенные библиотеки фронта и бэка;
  • недостаточно гибкий процесс формирования роутов.
  • редко выходят новые релизы.

Личное мнение

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

Что нужно знать заказчику о Yii

Разработка отдельных проектов ускорится в среднем быстрее на 10% (из личного опыта).

Таблица сравнения возможностей

Yii VS Laravel: за каким фреймворком будущее
Yii VS Laravel: за каким фреймворком будущее

*- относительный параметр (из личного опыта).

Какой фреймворк лучше: Laravel или Yii

Когда речь заходит о надежности и Yii, и Laravel стоят на равных. Фреймворки обеспечивают безопасность на нескольких уровнях (включая пароли, аутентификацию, SQL-инъекции, кросс-сайтную подделку запросов, скрипты сайта и т. д.)

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

1111
29 комментариев

На хабре этот мусор бы заминусили конечно). В статье фреймворк рассматривается ни как инструмент, а как тренд. Но особенно доставило сравнение Laravel и Yii2.

Я использовал как Yii2, так и Laravel в работе. Но автор судя по всему в Yii2 дальше quickstart не заглядывал, ибо большинство преимуществ, которые приписали в Laravel, реализованы в Yii2
удобно читаемые Laravel-коллекции и хелперы по работе с ними;ArrayHelper в Yii2
storage - отдельное место в структуре для хранилища;Yii2 не навязывает вам конкретную директорию, создайте себе любую и просто пропишите алиас
eloquent - ORM для работы с базой, реализация шаблона ActiveRecord...аналогичный функционал есть и в Yii2. С отношениями и прочими плюшками
миграции и сиды;Ага, и в Yii2тоже
интегрированная система модульного тестирования phpunit;Тоже есть. И codeception вдогонку
ACL плагины;RBAC в Yii2 ничем не хуже
частые релизы новых версий.Это вам не Wordpress. Поэтому слишком частые релизы скорее минус, нежели плюс. В Laravel нередко ломают обратную совместимость в некоторых компонентах фреймворка частыми релизами и это боль

Теперь о "преимуществах" Yii2
Active Form - создание форм по свойствам модели;Это скорее минус Yii2. ActiveForm подойдет разве что для формошлёпов. В валидаторах activeForm мешанина из php и jquery. С кастомизацией всегда будет боль.
использует общепринятую архитектуру и методы;Это ложь! Yii2 не навязывает никакой архитектуры. Он только предоставляет примерные шаблоны, чтобы вы видели как использовать его среду.
сравнительно просто изучитьСравнительно с чем? У Laravel ничуть не хуже документация.

Про минусы Yii2

новые версии выходят редко;За это его и выбирают разработчики и команды. Ежегодные релизы новых версий, ломающие обратную совместимость — это боль для разработки.
склеенные библиотеки фронта и бэка;В большинствах модулей с бекендом и фронтендом можно (в шаблоне Advanced) замапить в конфигах и разделить фронт и бэк части.
недостаточно гибкий процесс формирования роутов.Не хуже чем в Laravel. И группировка есть и фильрация, нормализация роутов. Динамические роуты и кастомные классы обработчики тоже можно реализовывать.
редко выходят новые релизы.Про это уже было.. Исправления безопасности и некоторые улучшения в yii2 выпускаются регулярно и это главное. А мажорные сырые релизы каждые полгода, исправляющий одни баги и добавляющий другие не нужны. Это не преимущество.

Из этого можно сделать вывод, что автор что то видел в Laravel и где то слышал про Yii2. Никакой объективности в этой статье нет. Статья — мусор!

6
Ответить

Красава!
Хотел, написать отзыв подобный, смотрю, а меня опередили.
Соглашусь с автором, что Lara - красивее. Для меня это важно. Доводилось поддерживать не один десяток огромных проектов на yii2. И практически везде одна и та же история - кто-то пытался сделать хорошо сначала, а потом Остапа понесло... На Laravel проектов было не меньше, но симптомы не столь печальные. Теория разбитых окон на лицо.

Ответить

Все очень просто, если вы хотите получать за работу доллары США - ваш выбор Laravel
если рубли/тенге/гривны - Yii
Выбор очевиден

2
Ответить

Как по мне, наиболее точный комментарий на тему выбора на каком фреймворке писать.
Еще сюда можно добавить, если евро - Symfony =)

Ответить

За WordPress.
^_^

7
Ответить

Толсто

Ответить

А вообще джинса

4
Ответить