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

131

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

  • 3
    Это не кажется правильным. Laravel - это полнофункциональный фреймворк, в котором Lumen рекламируется как микро-фреймворк, полученный из Laravel, жертвуя частью его конфигурируемости и расширяемости.
  • 3
    Люмен в значительной степени Laravel с меньшим количеством функций. В этом-то и дело.
Показать ещё 2 комментария
Теги:
lumen

3 ответа

161

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

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

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


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

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

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

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

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

// $app->withFacades();

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

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

Кроме того, почти все то же самое, что и в Laravel.

Хорошо читается в Lumen

  • 5
    Будет ли это так быстро, если мы начнем раскомментировать материал, чтобы вернуть функции?
  • 1
    @SamDark Очевидно, это будет немного медленнее с каждой включенной функцией. Но это все еще будет довольно быстро, так как отключенные функции - это только один из элементов оптимизации производительности.
Показать ещё 6 комментариев
30

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

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

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


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

  • 0
    Насколько я знаю, куки, сессии и т.д. все еще там. Однако они будут загружаться лениво и реально влияют на производительность только при использовании.
  • 0
    Люмен - мой любимый каркас сейчас. Я не использую Eloquent (или любые ORM), поэтому Lumen подходит мне очень хорошо.
Показать ещё 2 комментария
8

Цитата от Matt Stauffer

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

Здесь вы можете прочитать

  • 3
    Кроме того, Lumen не использует компонент маршрутизации Symfony. Вместо этого, nikic / fast-route используется для большей производительности.
  • 0
    Настройка Мэтта Штауффера для Laravel в любом случае побеждает назначение стандартного пользовательского интерфейса Bootstrap в Laravel, а что касается Elixir, то это npm install поэтому я бы сказал, что она не полностью готова "из коробки". Таким образом, мы не сильно теряем в этом отношении, переключаясь на Lumen. В Lumen я просто создаю package.json и npm, устанавливаю Elixer, настраиваю bower и все готово ...
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню