Я соло разработчик. С 2009 года зарабатываю тем что делаю и развиваю сайты. В основном это контентные сайты на WordPress. Однако кроме контентных есть и крупные проекты где нужно создавать коммьюнити и WordPress для этого категорически не подходит. Также есть у меня и микросервисы, где текстовый контент не используется. Раньше сервисы я писал на CodeInteger, а когда он “приумер” начал искать ему замену. И, году в 2014, я начал использовать Yii. Тогда это был 1.1, если не ошибаюсь. Когда вышел Yii2 все проекты были переписаны на него, сейчас первую ветку не использую нигде. По сравнению с CodeInteger даже первый Yii был даже не шагом – прыжком вперед и вверх. Не было никаких сомнений после перехода (хотя разрабатывать микро! сервисы на CI безусловно легче). И на январском штиле решил попробовать Laravel. Сделал маленький сервис, залил его на snippets.azzrael.ru (просто для теста, это не юзерский сервис). По итогам этого теста и родилось желание написать заметку.

Зачем сравнивать Laravel vs Yii

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

Простые поиски по yii vs laravel в феврале 2020 дали такие результаты:

Upwork.com : yii = 83 jobs, laravel = 822 jobs

hh.ru: yii = 247 вакансий, laravel = 259

Google Trends вообще показал что Yii никому за пределами России не интересен, да и в России интерес стабильно падает.

Laravel vs Yii Google Trends

Laravel vs Yii Google Trends

Laravel vs Yii Google Trends

Laravel vs Yii Google Trends

 

Каждому свое

Итак дано – я соло, у меня нет нанимателей, коллег и сотрудников. Это дает с одной стороны свободу стека, с другой стороны необходимость в стеке позволяющего легко повторно использовать код, легко рефакторить код, дающем четкую и понятную структуру проектов с минимальным количеством зависимостей, длинную и глубокую поддержку старого кода (новые версии не должны ломать совместимость), минимум сторонних технологий с которыми нужно разбираться, полная поддержка проекта в PhpStorm (с подсветкой всего чего только можно).

Если кратко – Laravel мне весьма понравился. Если бы последние 6 лет я писал на Laravel и сегодня решил бы попробовать Yii2, то врядли бы я написал о нем в позитиве.  В Laravel чувствуется бОльший потенциал и соответствие “духу времени”. На нем можно вполне пилить стартапы со смузи и получать удовольствие.  Буду ли я переписывать на него все свои проекты, как это было с CI, Yii1 на Yii2 – нет, не буду! Почему?

Почему останусь на Yii

Laravel хорошо подойдет команде. Удобные миграции, удобное отделение фронта от бэка (Webpack, шаблонизатор Blade), встроенный Laravel Homestead – все это поможет команде нормально работать. Но для соло это технологии которые только усложняют работу.

Мне не нужны миграции. Я в одно лицо прямо на проде меняю структуру в PhpMyadmin. Мне не нужно ничего никуда коммитить. Вся структура потом просто в модели.

Мне не нужен webpack и я не хочу ради него ставить npm с кучей зависимостей. Я не хочу в деве висеть с npm watch – меня вполне устраивает работать с дев версией ассетов и собирать их только в прод с помощью Yahoo compiller и простейшего bash скрипта.

Мне не понравились фасады из-за которых нужно танцевать с ide-helper, который будет генерить phpdoc и все равно не сгенерит их на 100%. Я так и не смог добиться автокомплита моделей и хелперов с шаблонах Blade, хотя во вьюхах Yii я просто подключаю нужный неймспейс и все автокомплитится.

Мне не понравился дебагбар Laravel, который выдает ошибку в компилированной вьюхе блейда и не возможно понять собственно что это за вьюха. И не возможность отдебажить Eloquent в SQL запрос включив в запрос байнды.

Шаблонизатор в PHP для меня вообще вещь не однозначная и холиварная. В мелких проектах ну не нужен он, хоть и прикольный.

Артизан, конечно, полезен своей универсальностью, но генератор Yii2 не заставляет тебя помнить команды и параметры – тут все на виду с кнопочками и подсказками.

Вообще Laravel сильно навязывает developers way, как мне кажется. Лучше чтобы разработка велась в стандартном окружении (Homestead, вагрант по сути), миграция+коммит, генерация стандартных роутов и русурсов и все это через артизан в консоли. Это не плохо, это наоборот хорошо в команде, где люди приходят и уходят, где нужно взаимодействие и понимание того что происходит в проекте. В Laravel нужно постараться чтобы сойти с Пути, в Yii2 этот путь нужно себе придумать и не забывать ему следовать, зато можно легко и быстро выкатывать в прод любую дичь.

В контексте вселенной дичь это плохо, но я тут деньги зарабатываю. 9 из 10 проектов занимают место на вдске полгода, после чего уходят в архив на год-два, после чего стираются без воспоминаний, так зачем усложнять? Те же проекты что выживают постепенно допиливаются, а с годами возникает желание их переписать (например как сейчас на Laravel).

Итого

В моем частном случае я не увидел необходимости не только переписывать старые проекты с Yii2 на Laravel (хотя в переписывании с Yii1 на Yii2, например, видел отчетливо), но и в принципе в смене стека.

Однако если вы про найм

То, на данном этапе, Yii выглядит как тупик. Складывается впечатление что с ним куда меньше перспектив в найме. Поэтому если вы хотите туда и выбираете что учить, то выбирайте Laravel (или лучше Symphony, но статья не про неё). Если же вы маленький стартап или инди и вам нужно скорее что-то выкатить, то подойдет и Yii2. Ну и ждем 3й версии Yii…

16 февраля 2020 |

4 Комментариев к “Laravel или Yii2 что выбрать”

  1. Тормоз 13 октября, 2020

    Не подскажете, стоит ли изучать yii2 или yii1 на замену WordPress? Мне не нравится его нагрузка на хостинг, тормознутость, мне сложно свой html шаблон сделать, особенно когда много сайтов штамповать. Вроде Dle то что надо но он оч дорогой для большого количества сайтов. Оказалось есть кроме cms фреймоврки ) в пхп и базах данных не разбираюсь, только самые основы видел. Еще модх пробовал, но как то сложновато и может лучше сразу фрейворк тогда учить. Получится на yii2 делать как в Dle? Легко натягивается html css, рейтинги записей, количество просмотров записей, сортировка пользователями записей по просмотрам, алфавиту, комментарии, админка для добавления контента, возможно регистрации пользователей и добавление ими контента? Стоит ли пытаться учить фреймворк чтобы это сделать и насколько быстро сложно это?) Laravel даже не получилось установить, не нашел скачать архив залить) Извиняюсь если глупые вопросы. Заранее благодарю за ответ)

  2. Serge 13 октября, 2020

    В Yii2 тоже есть миграции если что.

  3. Azzrael 18 октября, 2020

    Тормоз, в вордпресс вот это все “комментарии, админка для добавления контента, возможно регистрации пользователей и добавление ими контента” уже есть. В Yii этого нет и нужно это делать руками с использование php в котором вы не разбираетесь ;). Если ваша цель “много сайтов штамповать” не погружаясь в php и базы данных, то лучше обратите внимание на разнообразие конструкторов сайтов.

  4. Azzrael 18 октября, 2020

    Serge, да я знаю. Вернее узнал про них в Yii после копания в Laravel ;) Просто в ларке они прямо навязчивы, а в Yii ну есть и есть. Этим мне Yii и импонирует – тут есть многое, но тебя никто не заставляет это использовать.

Есть что сказать по теме статьи? Пожалуйста - пишите!