Интересовались уже тысячу раз, но у меня задача более конкретно поставлена.
Нужно сделать REST API и админку к нему (backend и fronend так сказать). Точнее переписать весь код текущего апи. Сейчас реализовано на silex 1.3. Древний старый код. Pimple и все дела. Да и вообще помер
Внутри самого апи:
- Практически не будет прямой работы с базой. Будут только redis, sphinx, memcache. И по мелочи.
- Работа с очередями
- Соответственно обработчики очередей в кроне
Внутри админки:
- Правка конфигов
- Просмотр сущностей в БД
И вот не могу решить.
Slim
Все хорошо, настраивается, легкий. Но можно накосячить, так как опыта с нуля у меня не так много
Lumen/Laravel
Легкий, быстрый. Компоненты от старшего Laravel. Но всё же урезан. Есть ли смысл использовать Lumen, или сразу перейти на Laravel?
Symfony
Сейчас Symfony вроде как можно поставить минимальный функционал, и это не будет громоздкая корова. Но будет доктрина, которая вроде как сложнее чем Eloquent от Laravel, да и медленнее.
Ранее код писался на Silex, но на древней версии. Писался топорно, так как не было опыта использования внедрения зависимости. Соотвественно опыта набрался, но свобода действий все же навредила.
Что выбрать, чтобы не наступить на те же грабли? Чтобы код обновлялся (фреймворка), чтобы не было совсем свободы действий, дабы полноценно использовать шаблоны, а не "написал как первое в голову пришло"
UPDATE: ниже сам ответил на свой вопрос, спустя время
Ответ на свой вопрос спустя время. Сначала выбрал slim, так как по описанию он похож на silex, на котором я писал ранее.
Начав разбираться, понял, что в последней версии slim 4, это уже не то что микрофреймворк, а скорее конструктор фреймворка: убрали вообще всё что можно, в угоду кастомизации. Такое мне не подошло, так как придется сращивать все библиотеки самому. Банально даже эммитер писать самому.
Дальше выбор пал на Lumen: посмотрел что в нем вырезано относительно Laravel, что можно будет добавить от старшего брата и что нельзя. Устроило, начал писать на Lumen. Не всё так гибко, как могло быть на slim, но лишняя свобода тоже не всегда хорошо.
Из плюсов: легкая версия Laravel. Подходит многое из библиотек для Laravel
Из минусов: Lumen не подойдет новичкам, как первый фреймворк. Всё из-за документации. Некоторые моменты в ней не очевидны, если ранее не писал на Laravel (или вообще на каком то фреймворке). Например:
Где хранятся дефолтные значения конфигов?
Какие могут быть конфиги?
Какие могут быть команды artisan?
Нужно ли генерировать APP_KEY?
И вот таких не очевидных мелочей будет много для новичка
Начав разбираться, понял, что в последней версии slim 4, это уже не то что микрофреймворк, а скорее конструктор фреймворка: убрали вообще всё что можно, в угоду кастомизации
Ваш пример плох тем, что его делает какой то человек, который может забить на проект через 1 год, например. И тогда придется искать форки, или тратить время на самостоятельную поддержку каркаса
bestauction, Нет, я не ошибся. Все таки это это один из разработчиков фреймворка) https://github.com/orgs/slimphp/people
К тому же, единожды написав проект на фреймворке его обычно не обновляют уже, это все таки всего лишь инструмент. Если он уже использован и проект готов, нет смысла обновлять фреймворк.