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