Всем привет!
Это конечно же вопрос выбора между Ларавел и Симфони. Но чтобы не создавать очередную холиварную ветку, хотел бы просить совет строго в контексте имеющейся задачи. А именно:
- Нужно сделать веб-приложение для небольшого производства.
- На первом этапе нужно обрабатывать оплаты, расходы, прайслист, простую базу клиентов и заказы (состоящие из разных других классов), собирать это в отчеты.
- На втором этапе сайт для клиентов с возможностью самим создавать заказы, иметь личный кабинет со всей историей и т.п.
- В дальнейшем можно придумать кучу всего, заказчик только рад.
Бэкенд на php+mysql, пусть это будет вне обсуждения. Начал всё это писать на ванильном php, но подумал, что наверное лучше применить фреймворк. Ни разу этого не делал, но уже есть ощущение, что иначе тратишь время на изобретение велосипеда. Долго читал про Ларавел и Симфони, смотрел примеры и пришел к выводу, что самое принципиальное их отличие - ОРМки. Причём актив-рекорд в половине текстов ругают. Мне и самому не нравится идея того, что модель смешана с хранением и неотделима от него.
За Ларавел:
+ Это самый популярный и востребованный фреймворк, его знание может пригодится в будущем.
+ Вроде как его гораздо проще освоить.
Против Ларавел:
- Актив-рекорд.
- Даже самое начало - процесс создания моделей - в Ларавел кажется мне каким-то противоестественным.
- В проекте уже есть класс "Отчет", объекты которого строятся из объектов других классов, но который сам по себе не имеет никакого отношения к БД. Как это реализовать в парадигме Актив-рекорд - не представляю.
- Про Ларавел часто говорят, что это для маленьких/простых/быстрых проектов или для MVP.
За Симфорни:
+ Дата Маппер - модель отдельно, хранение отдельно, всё понятно.
+ Про Симфони часто говорят, что это серьезная вещь для серьезных проектов, особенно с перспективой усложнения и расширения функционала.
+ Если так, то изучить более серьезный фреймворк должно быть полезнее.
Против Симфони:
- Может мой проект не настолько сложный, чтобы использовать самый сложный фреймворк?
Возможно, я что-то упускаю, или чего-то не понимаю. Прошу совета у более опытных программистов. Заранее большое спасибо!
У Laravel как бы огромное сообщество, но так же много устаревших плагинов, которые не поспевают за обновлениями. + огромное количество магических методов, которые не понимает ни какая IDE без специальных костылей. Поэтому многое для надёжности придётся писать самому.
У Symfony нет этих минусов, но там нужно кодить по лучшим практикам, а это сильно раздувает код (хотя если правильно изначально проектировать, то раздуваться код будет на любом фреймворке, просто другие позволяют "гавнокодить" ака фасады в Ларавел) + Доктрина, такая ещё штука, многое нельзя сделать из коробки простым способом из-за паттерна unit of work, что возможно от ORM Ларавел или Yii.
И что за, простите, сообщество? Которые дебажат код через dd? Чатик в телеграме, где вопросы уровня "почему не работает регистрация"? Да, очень полезное сообщество.
многое нельзя сделать из коробки простым способом из-за паттерна unit of work
dm vs ar - вечный холивар. каждый из них по своему хорош и лучше подходит для определенных задач.
симфони - классика. хорошо подходит для обучения прекрасному и кровавого командного энтерпрайза.
ларавел - быстро/просто, огромное комюнити, куча готовых решений чуть ли не на любой чих-пых.
но на любом из них можно и писать норм, и махрово говнокодить.
кстати, если вы такой ярый противник ar, вам ни что не мешает использовать dm в ларавеле.
я бы рекомендовал ларавел. особенно, если будет пилиться 1-2 человеками.
Если нет хорошей базы по пониманию проектирования приложений, то симфони не особо вариант (можно скатиться в плохой код также как и в любом другом фреймворке). Доктрина неудобна для задач "на вчера". Если писать надо много, часто и быстро то ларавел лучше.
Доктрина состоит из полного фарша, который позволяет писать быстро и удобно и не штамповать те же связи и анонимки для выборок, а просто писать простые аннотации (один раз) и простые запросы в репозиториях
В AR приходится штамповать один и тот же код в каждой моделе
Вообще без разницы. Реальные плюсы и минусы этих фреймворков лежат вне контекста всего что вы озвучили. Хороший проект можно и на Yii написать. А половина ваших высказываний так вообще выдает откровенную слабость как разработчика. ActiveRecord? Doctrine, Data Mapper? Да без разницы по хорошему.
Для первой задачи вам вообще Битрикс24 хватит. Для второй - написать небольшой сайтик и интегрировать его туда. Делов-то