Различия и сходства между Люменом и Ларавелем

Я прочитал документацию, и кажется, что Lumen – это Laravel с меньшими возможностями. Я должен что-то упустить. Я ищу таблицу сравнения компонентов и особенностей Laravel и Lumen. Кто-нибудь знает различия?

Обновление (5.2)

С последней версией Lumen (5.2) Microframework фокусируется на API-интерфейсах Stateless.
В документации указано:

Lumen 5.2 представляет собой переход на Lumen для похудения, чтобы сосредоточиться исключительно на обслуживании безстоящих, JSON API. Таким образом, сеансы и представления больше не включаются в структуру. Если вам нужен доступ к этим функциям, вы должны использовать полную структуру Laravel.


Оригинальный ответ (<= 5.1)

Люмен – это скорость . Это быстрее и может обрабатывать больше запросов в секунду, чем Laravel.

Laravel – это структура, которая объединяет множество компонентов (сторонних и собственных компонентов Laravels). Теперь Lumen использует множество тех же компонентов, но с минимальным сокращением процесса загрузки. Вы могли бы сказать, что это «другой клей», компоненты (и, следовательно, многие функции) в основном одинаковы.

Повышение производительности достигается за счет устранения некоторой гибкости структуры с точки зрения конфигурации и изменения процесса загрузки по умолчанию.

Кроме того, по умолчанию все функции отключены и должны быть активированы до их использования. Например: Фасады (например, DB::table() )
Сначала вам нужно раскомментировать эту строку в bootstrap/app.php чтобы включить их:

 // $app->withFacades(); 

То же самое касается файлов окружения Dotenv и Eloquent.

Для маршрутизации Lumen использует nikic / FastRoute вместо маршрутизатора symfonys, потому что он работает намного лучше и придает микро-каркасу еще один большой импульс.

Помимо этого почти все то же самое, что и в Laravel.

Хорошо читает на Lumen

  • Документация (особенно введение )
  • Статья от Мэтта Штаффера
  • Интервью с Тейлором Отуэлом (особенно последний вопрос)
  • Обсуждение Reddit
  • Laracast: Представляем Lumen

Lumen не предназначен для замены Laravel, скорее, это более специализированная (и урезанная) инфраструктура, предназначенная для микросервисов и API. Он отобрал ненужные функции для API, такие как сеансы HTTP и файлы cookie, а также ограниченное количество параметров конфигурации. Из-за коробки Люмен приносил в жертву гибкость Laravel для скорости.

Однако вы можете добавить компоненты Laravel в Lumen для его расширения, поэтому его можно использовать не только для микросервисов и API. Однако, если ваша цель – продлить Lumen, чтобы стать веб-сайтом, вы можете использовать Laravel вместо этого.

Они также имеют разные варианты использования. Люмен и Ларавел предназначены для совместной работы. Для API и сервисов часто вызываются, используйте Lumen. Для приложений, ориентированных на пользователя, используйте Laravel.


Этот ответ взят из сообщения в блоге, которое я написал, что объясняет разницу между Lumen и Laravel.

Цитата из Matt Stauffer

Lumen имеет тот же фундамент, что и Laravel, и многие из тех же компонентов. Но Lumen построен для микросервисов, а не для приложений, ориентированных на пользователей (хотя он может быть использован для чего угодно). Таким образом, интерфейсные тонкости, такие как Bootstrap и Elixir, а также бутстрап аутентификации и сеансы не включаются из коробки, и существует меньше возможностей для расширения и изменения файлов начальной загрузки.

Вы можете прочитать больше здесь