Сегодня особенно обострилась борьба yii2 vs Laravel. И я бы хотел отметить минусы этих фреймворков. Чистая субъективщина. Но сегодня я напишу про Laravel.

Почему минусы? Мне нравится говорить о минусах, тут ничего не поделать :) Приступлю, пожалуй, от наименьшего до глобального.

snake_case vs camelCase

Синтаксический сахар мешает

Про какой сахар я говорю? Например, Eloquent:

Это путает, реально, путает :)

Далее, в самое Eloquent есть first(), firstOrNew(), firstOrFail(), firstOrCoffeeMaker(), firstOfXYZ(). Как по мне, это слишком большое пространство для маневра.

Сделайте это опционально, никому не нужна простыня непонятных методов, которые приходится читать в коде, а не в мануале или гугле. Ха-ха, кто ж читает код в гугли или мануале, возникает вопрос? А я скажу — все :) Программист — существо ленивое, он либо методом тыка что-то ищет, либо гуглит решение. Такая вот логика.

Тот же момент про контроллеры, в роуте можно как контроллер указать для обработки, так и анонимную функцию. Я видел проект, где не было ни одного контроллера, но зато около 3 тысяч строк кода в routes.php.

Не видел, ни одного дельного сборника best practices

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

Вся боль в том, что никто не рассказывает как правильно сделать админку X для проекта Y. Я не говорю про воркбенч в ларавеле, не про компонентность. Тупо админка, с авторизацией, своим лейаутом, цсс, фронтендом, контроллером, может парой моделей. Например, для бложека. Как делать правильно? А хз.

Есть https://github.com/LaravelRUS/SleepingOwlAdmin он крутой, но проблема в том, что добрая часть ларавел программистов гуглят, пишут в форум ларакаст о том, как пофиксить ошибку автозагрузчика.

Я к тому, что никто не знает, как сделать правильно. В мире Yii, Саша Макаров молодца и все разжевал в cookbook, в мире Symfony порог вхождения такой, что хорошие кодеры свой Laravel могут написать :) Там вопросов таких не возникнет.

Но да ладно, админка это фигня. Есть IoC, есть ServiceProvider, есть что-то еще, но никто не говорит как этим пользоваться. Впечатление, будто ларавел программист пришел из джавы. Серьезно, в том же django, flask ни первое ни второе не оглашается на первой или второй странице мануала, тупо, потому что это не нужно.

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

Facades — прикольное решение в плане IoC, но с ним ломается IDE, появляется необходимость юзать костыль типа https://github.com/barryvdh/laravel-ide-helper, потому что иначе все равно, что ходить босиком по снегу в -35 градусов Цельсия.

Можно придумать. что еще наругать, но лень.

Экосистема

Хомячки

Тейлор

Чем это плохо? Будущее фреймворка определяет один человек, он закрыл раздел issues, он требует описывать баги пулл реквестом с тестом, чтобы найти багу или что-то такое, он толкает всем свое виденье. Гайз, это не опенсорс. Сколько бы проблем я не гуглил в плане ларавела, я находил решения на ларакастс.

Вот это я понимаю подсадить людей на иглу, а потом через пару лет всех кинуть и сказать, что ларавел теперь депрекейтед, новый ларавел с дамами и преферансом, и за $1 в месяц на лицензию.

Зависимость на 1 человека, отсутствие влияния сообщества — хрень. Твиттер голосование не в счет. Все кто раньше контрибутил в ларавел перестали. [тут должна быть картинка Киселева]

Вместо заключения