Я прочитал документацию, и кажется, что Lumen - это Laravel с меньшими возможностями. Я должен что-то упустить. Я ищу сравнительную таблицу компонентов и функций Laravel и Lumen. Кто-нибудь знает различия?
Это не кажется правильным. Laravel - это полнофункциональный фреймворк, в котором Lumen рекламируется как микро-фреймворк, полученный из Laravel, жертвуя частью его конфигурируемости и расширяемости.
Фиджас
3
Люмен в значительной степени Laravel с меньшим количеством функций. В этом-то и дело.
В последней версии Lumen (5.2) микрофрейм фокусируется на API без сохранения состояния.
В документации говорится:
Lumen 5.2 представляет собой переход на похудение Lumen, чтобы сосредоточиться исключительно на обслуживании API-интерфейсов JSON без сохранения состояния. Таким образом, сеансы и представления больше не включаются в структуру. Если вам нужен доступ к этим функциям, вы должны использовать полную среду Laravel.
Оригинальный ответ (<= 5.1)
Люмен это все о скорости . Это быстрее и может обрабатывать больше запросов в секунду, чем Laravel.
Laravel - это фреймворк, который склеивает множество компонентов (сторонних и собственных компонентов Laravels). Теперь Lumen использует много одинаковых компонентов, но сокращает процесс начальной загрузки до минимума. Можно сказать, что это «другой клей», компоненты (и, следовательно, многие функции) в основном одинаковы.
Повышение производительности достигается за счет устранения некоторой гибкости инфраструктуры с точки зрения конфигурации и изменения процесса загрузки по умолчанию.
Кроме того, другие функции по умолчанию отключены и должны быть активированы, прежде чем их можно будет использовать. В качестве примера: Фасады (например DB::table())
Сначала необходимо раскомментировать эту строку, bootstrap/app.phpчтобы включить их:
// $app->withFacades();
То же самое касается файлов среды Dotenv и Eloquent.
Для маршрутизации Lumen использует nikic / FastRoute вместо маршрутизатора symfonys, потому что он работает намного лучше и дает микро-фреймворк еще один большой импульс.
Будет ли это так быстро, если мы начнем раскомментировать материал, чтобы вернуть функции?
Сэм Дарк
1
@SamDark Очевидно, это будет немного медленнее с каждой включенной функцией. Но это все еще будет довольно быстро, так как отключенные функции - это всего лишь одна часть оптимизации производительности
lukasgeiter
Таким образом, тест не отражает накладные расходы в реальных приложениях, а в реальных приложениях он будет выше. ХОРОШО.
Сэм Дарк
1
@SamDark Этот пост в блоге объясняет, как он был оценен. Как вы можете видеть, тестовое приложение просто возвращает «Hello World» без использования моделей или других функций фреймворка, поэтому производительность в реальном приложении будет ниже (хотя в большинстве случаев это не заметно). Ваше приложение все равно будет смехотворно быстрым)
lukasgeiter
@lukasgeiter, насколько я понимаю, если я создаю приложение Ionic с RESTful Laravel API, будет ли больше смысла использовать Lumen?
mtpultz
45
Lumen не предназначен для замены Laravel, скорее это более специализированная (и урезанная) платформа, разработанная для микросервисов и API. Он убрал ненужные функции для API, такие как HTTP-сессии и файлы cookie, а также ограничил количество параметров конфигурации. Из коробки Люмен пожертвовал гибкостью Laravel для скорости.
Однако вы можете добавить компоненты Laravel в Lumen, чтобы расширить его, чтобы его можно было использовать не только для микросервисов и API. Однако, если ваша цель - расширить Lumen, чтобы он стал веб-сайтом, вы можете использовать вместо этого Laravel.
У них также есть разные варианты использования. Люмен и Ларавел предназначены для совместной работы. Для часто вызываемых API и сервисов используйте Lumen. Для пользовательских приложений используйте Laravel.
Этот ответ взят из моего блога, в котором объясняется разница между Lumen и Laravel.
Насколько я знаю, куки, сессии и т. Д. Все еще там. Однако они будут загружаться лениво и реально влияют на производительность только при использовании.
lukasgeiter
Люмен - мой любимый каркас сейчас. Я не использую Eloquent (или любые ORM), поэтому Lumen подходит мне очень хорошо.
prograhammer
2
Допустим, я создаю веб-приложение и решаю написать API для дальнейшей раздельной логики (и, чтобы легко разрешить сторонние приложения). Будет ли хорошей практикой написать API с Lumen и написать сайт с Laravel?
Тайлер Кромптон
Это замена. Это Laravel с другим роутером. Виртуально ничего не вычеркнули - просто сделали необязательным. Нет законных оснований использовать Laravel, когда доступен предположительно более быстрый Laravel (Lumen).
Рик Джолли
14
Цитата от Мэтта Штауффера
У Lumen та же основа, что и у Laravel, и много таких же компонентов. Но Lumen создан для микросервисов, а не для приложений, ориентированных на пользователя (хотя его можно использовать для чего угодно). Таким образом, такие тонкости внешнего интерфейса, как Bootstrap и Elixir, а также начальная загрузка аутентификации и сессии, не включаются из коробки, и есть меньшая гибкость для расширения и изменения файлов начальной загрузки.
Кроме того, Lumen не использует компонент маршрутизации Symfony. Вместо этого, nikic / fast-route используется для большей производительности.
Лимон Монте
Настройка Мэтта Штауффера для Laravel в любом случае побеждает назначение стандартного пользовательского интерфейса Bootstrap в Laravel, а что касается Elixir, то npm installон не полностью готов "из коробки", я бы сказал. Таким образом, мы не сильно теряем в этом отношении, переключаясь на Lumen. В Lumen я просто создаю package.json и npm, устанавливаю Elixer, и настраиваю bower и все готово ...
prograhammer
Однако после использования Lumen я могу сказать, что есть разочарования. До сих пор я обнаружил, что многие из запросов / маршрутизации / помощников являются неполными по сравнению с тем, что доступно от Laravel. Например, вы не можете сделать redirect()->intended. Я надеюсь, что Люмен догонит эти области. Мне очень нравится Laravel без ORM (Eloquent), и поэтому Люмен мне очень нравится.
prograhammer
2
@prograhammer, я не думаю, что эта особенность когда-либо будет включена в Lumen. Я думаю, что для этого потребуется сеанс, который Люмен намеренно прекращает. Кроме того, я не вижу особой пользы для redirect()->intended()API, на чем фокусируется Lumen.
Тайлер Кромптон
1
Люмен для АПИС, а не для интерфейсов
Лакин Мохапатра
4
Микрофреймы Lumen - это облегченная версия полнофункционального фреймворка Laravel. Lumen использует синтаксис и компоненты Laravel и может быть легко «обновлен» до Laravel.
Lumen - это более специализированная (и урезанная) среда, разработанная для разработки микросервисов и API. Таким образом, некоторые функции в Laravel, такие как сеансы HTTP, файлы cookie и шаблоны, не нужны, и Lumen забирает их, сохраняя то, что важно - маршрутизацию, ведение журналов, кэширование, очереди, проверку, обработку ошибок и несколько других.
Lumen - это идеальное решение для создания микросервисов на основе Laravel и быстрых API. На самом деле, это одна из самых быстрых доступных микро-платформ. Никогда еще не было так легко написать потрясающе быстрые сервисы для поддержки ваших приложений Laravel. доктор
Lumen - это фреймворк для создания API, который, по сути, будет обслуживать ответы JSON для ваших запросов. Вот и все.
Такие приложения известны как веб-сервисы в целом .
Начиная с обновления Lumen 5.2, он не поддерживает представления laravel, сеансы и т. Д., Для этого вам придется перейти на полную версию laravel.
Некоторые компоненты платформы Laravel заменяются другими пакетами в пользу производительности. проверьте их здесь
Примеры сценариев, в которых мы можем рассмотреть Lumen
Возможно, вы захотите открыть некоторые функции приложения для других разработчиков через API
Ваше приложение должно поддерживать как веб-приложение, так и мобильное приложение, тогда оно будет идеальным для хранения данных в БД, обернутой в Lumen API.
Когда вы рассматриваете масштабируемость как важный момент, вам может потребоваться просвет
Ответы:
Обновление (5.2)
В последней версии Lumen (5.2) микрофрейм фокусируется на API без сохранения состояния.
В документации говорится:
Оригинальный ответ (<= 5.1)
Люмен это все о скорости . Это быстрее и может обрабатывать больше запросов в секунду, чем Laravel.
Laravel - это фреймворк, который склеивает множество компонентов (сторонних и собственных компонентов Laravels). Теперь Lumen использует много одинаковых компонентов, но сокращает процесс начальной загрузки до минимума. Можно сказать, что это «другой клей», компоненты (и, следовательно, многие функции) в основном одинаковы.
Повышение производительности достигается за счет устранения некоторой гибкости инфраструктуры с точки зрения конфигурации и изменения процесса загрузки по умолчанию.
Кроме того, другие функции по умолчанию отключены и должны быть активированы, прежде чем их можно будет использовать. В качестве примера: Фасады (например
DB::table()
)Сначала необходимо раскомментировать эту строку,
bootstrap/app.php
чтобы включить их:То же самое касается файлов среды Dotenv и Eloquent.
Для маршрутизации Lumen использует nikic / FastRoute вместо маршрутизатора symfonys, потому что он работает намного лучше и дает микро-фреймворк еще один большой импульс.
В остальном все почти так же, как в Laravel.
Хорошо читает на люмен
источник
Lumen не предназначен для замены Laravel, скорее это более специализированная (и урезанная) платформа, разработанная для микросервисов и API. Он убрал ненужные функции для API, такие как HTTP-сессии и файлы cookie, а также ограничил количество параметров конфигурации. Из коробки Люмен пожертвовал гибкостью Laravel для скорости.
Однако вы можете добавить компоненты Laravel в Lumen, чтобы расширить его, чтобы его можно было использовать не только для микросервисов и API. Однако, если ваша цель - расширить Lumen, чтобы он стал веб-сайтом, вы можете использовать вместо этого Laravel.
У них также есть разные варианты использования. Люмен и Ларавел предназначены для совместной работы. Для часто вызываемых API и сервисов используйте Lumen. Для пользовательских приложений используйте Laravel.
Этот ответ взят из моего блога, в котором объясняется разница между Lumen и Laravel.
источник
Цитата от Мэтта Штауффера
Вы можете прочитать больше здесь
источник
npm install
он не полностью готов "из коробки", я бы сказал. Таким образом, мы не сильно теряем в этом отношении, переключаясь на Lumen. В Lumen я просто создаю package.json и npm, устанавливаю Elixer, и настраиваю bower и все готово ...redirect()->intended
. Я надеюсь, что Люмен догонит эти области. Мне очень нравится Laravel без ORM (Eloquent), и поэтому Люмен мне очень нравится.redirect()->intended()
API, на чем фокусируется Lumen.Микрофреймы Lumen - это облегченная версия полнофункционального фреймворка Laravel. Lumen использует синтаксис и компоненты Laravel и может быть легко «обновлен» до Laravel.
Lumen - это более специализированная (и урезанная) среда, разработанная для разработки микросервисов и API. Таким образом, некоторые функции в Laravel, такие как сеансы HTTP, файлы cookie и шаблоны, не нужны, и Lumen забирает их, сохраняя то, что важно - маршрутизацию, ведение журналов, кэширование, очереди, проверку, обработку ошибок и несколько других.
источник
Почему люмен?
Lumen - это фреймворк для создания API, который, по сути, будет обслуживать ответы JSON для ваших запросов. Вот и все.
Такие приложения известны как веб-сервисы в целом .
Начиная с обновления Lumen 5.2, он не поддерживает представления laravel, сеансы и т. Д., Для этого вам придется перейти на полную версию laravel.
Некоторые компоненты платформы Laravel заменяются другими пакетами в пользу производительности. проверьте их здесь
Примеры сценариев, в которых мы можем рассмотреть Lumen
источник
Основное различие между laravel и lumen заключается в том, что Laravel может иметь команды ремесленников, которых нет в lumen.
источник