루멘과 라 라벨의 차이점과 유사점


181

나는 문서를 읽었고 Lumen은 기능이 적은 Laravel 인 것 같습니다. 뭔가 빠졌을 것입니다. Laravel과 Lumen의 구성 요소 및 기능에 대한 비교 테이블을 찾고 있습니다. 누구든지 차이점을 알고 있습니까?


3
옳지 않은 것 같습니다. Laravel은 루멘이 구성 성과 확장 성을 일부 희생하여 Laravel에서 파생 된 마이크로 프레임 워크로 선전되는 완전한 기능을 갖춘 프레임 워크입니다.
fijas

3
루멘은 기능이 적은 라 라벨입니다. 그게 요점입니다.
Frank


답변:


196

업데이트 (5.2)

최신 버전의 Lumen (5.2)에서는 Microframework가 Stateless API에 중점을 둡니다. 설명서 에는 다음
이 명시되어 있습니다.

Lumen 5.2는 상태 비 저장 JSON API 제공에만 집중하기 위해 Lumen 슬리밍의 전환을 나타냅니다. 따라서 세션과 뷰는 더 이상 프레임 워크에 포함되지 않습니다. 이러한 기능에 액세스해야하는 경우 전체 Laravel 프레임 워크를 사용해야합니다.


원래 답변 (<= 5.1)

루멘은 속도에 관한 것 입니다. Laravel보다 더 빠르며 초당 더 많은 요청을 처리 할 수 ​​있습니다.

Laravel은 많은 구성 요소 (타사 및 Laravels 자체 구성 요소)를 서로 연결하는 프레임 워크입니다. 이제 Lumen은 동일한 구성 요소를 많이 사용하지만 부트 스트랩 프로세스를 최소한으로 줄입니다. "다른 접착제"라고 말할 수 있으며 구성 요소 (따라서 많은 기능)는 대부분 동일합니다.

구성 측면에서 프레임 워크의 유연성 중 일부를 제거하고 기본 부팅 프로세스를 변경하면 성능이 향상됩니다.

그 외에도 기본적으로 더 많은 기능이 비활성화되어 있으며 사용하기 전에 활성화해야합니다. 예를 들어 : Facades (like DB::table()) 먼저이
줄의 주석을 해제 bootstrap/app.php하여 활성화하십시오.

// $app->withFacades();

Dotenv 환경 파일과 Eloquent도 마찬가지입니다.

루멘은 루팅 이 심포니 라우터 대신 nikic / FastRoute를 사용하여 성능이 훨씬 우수하고 마이크로 프레임 워크에 또 다른 큰 부스트를 제공합니다.

그 외에는 라 라벨과 거의 모든 것이 동일합니다.

루멘에 대한 좋은 읽을 거리


7
기능을 다시 가져 오기 위해 주석 처리를 취소하면 속도가 빨라 집니까?
Sam Dark

1
@SamDark 분명히 모든 기능을 사용하면 약간 느려집니다. 그러나 비활성화 된 기능은 성능 최적화의 한 부분에 불과하기 때문에 여전히 매우 빠릅니다.
lukasgeiter

따라서 벤치 마크는 실제 앱과 실제 앱의 오버 헤드를 반영하지 않습니다. 확인.
Sam Dark

1
@SamDark 이 블로그 게시물 은 벤치마킹 방법을 설명합니다. (. 대부분의 경우 눈에 띄게 아니지만 응용 프로그램이 여전히 엄청나게 빠른 것) 당신은 실제 응용 프로그램의 성능이 느려질 수 있도록 테스트 응용 프로그램 그냥 모델이나 다른 프레임 워크 기능을 사용하지 않고 "안녕하세요"를 반환 볼 수 있듯이
lukasgeiter

RESTful Laravel API로 Ionic 앱을 빌드하는 경우 이해하는 것처럼 @lukasgeiter는 루멘을 사용하는 것이 더 합리적입니까?
mtpultz 2016 년

45

루멘은 라 라벨을 대체하기 위해 고안된 것이 아니라 마이크로 서비스 및 API를 위해 설계된보다 전문화 된 (제거 된) 프레임 워크입니다. HTTP 세션 및 쿠키와 같은 API에 불필요한 기능을 제거하고 구성 옵션의 수를 제한했습니다. 즉시 사용 가능한 Lumen은 속도를 위해 Laravel의 유연성을 희생했습니다.

그러나 Laravel 구성 요소를 Lumen에 추가하여 확장 할 있으므로 마이크로 서비스 및 API 이상의 용도로 사용할 있습니다. 그러나 루멘을 웹 사이트로 확장하는 것이 목표라면 라 라벨을 대신 사용할 수도 있습니다.

또한 사용 사례가 다릅니다. 루멘과 라 라벨은 함께 일하기위한 것입니다. API 및 서비스가 자주 호출되는 경우 Lumen을 사용하십시오. 사용자 용 응용 프로그램의 경우 Laravel을 사용하십시오.


이 답변은 내가 쓴 루멘과 라 라벨의 차이점을 설명 하는 블로그 게시물 에서 발췌 한 것입니다.


내가 아는 한 쿠키, 세션 등이 여전히 있습니다. 그러나 지연로드가 발생하고 사용시 성능에만 실제로 영향을 미칩니다.
lukasgeiter

루멘은 내가 선호하는 프레임 워크입니다. 나는 Eloquent (또는 다른 ORM)를 사용하지 않기 때문에 Lumen이 정말 잘 어울립니다.
prograhammer

2
웹 응용 프로그램을 작성 중이며 논리를 더 분리하고 쉽게 타사 응용 프로그램을 허용하기 위해 API를 작성하기로 결정했다고 가정 해 봅시다. Lumen으로 API를 작성하고 Laravel으로 웹 사이트를 작성하는 것이 좋습니다?
Tyler Crompton

대체품입니다. 다른 라우터가있는 라 라벨입니다. 사실상 아무것도 제거되지 않았습니다. 단지 선택 사항입니다. 더 빠른 라 라벨 (Lumen)을 사용할 수있을 때 라 라벨을 사용해야 할 정당한 이유는 없습니다.
Rick Jolly

14

Matt Stauffer에서 인용

루멘은 라 라벨과 같은 기초를 가지고 있으며 많은 동일한 구성 요소를 가지고 있습니다. 그러나 루멘은 마이크로 서비스를 위해 만들어졌으며 사용자 용 애플리케이션에는 그다지 유용하지 않습니다 (물론 무엇이든 사용할 수 있습니다). 따라서 Bootstrap 및 Elixir와 같은 프론트 엔드 기능과 인증 부트 스트랩 및 세션은 기본적으로 제공되지 않습니다. 부트 스트랩 파일을 확장하고 변경하는 유연성이 떨어집니다.

자세한 내용은 여기를 참조 하십시오


4
또한 루멘은 Symfony의 Routing 컴포넌트를 사용하지 않습니다. 대신, nikic / fast-route는 성능 향상을 위해 사용됩니다.
Limon Monte

Laravel에 대한 Matt Stauffer의 정자 설정 은 어쨌든 Laravel의 기본 Bootstrap UI 항목의 목적을 물리 치고 Elixir의 경우 npm install"즉석에서"완전히 준비되지 않았습니다. 그래서 우리는 루멘으로 전환함으로써 이것들과 관련하여 많은 것을 잃지 않습니다. 루멘에서는 package.json과 npm을 설치하고
Elixer를

그러나 루멘을 사용한 후에는 좌절감이 있다고 말할 수 있습니다. 지금까지 많은 요청 / 라우팅 / 헬퍼가 라 라벨에서 제공되는 것에 비해 불완전하다는 것을 발견했습니다. 예를 들어을 수행 할 수 없습니다 redirect()->intended. 루멘이이 지역을 따라 잡기를 바라고 있습니다. 나는 ORM (Eloquent)이없는 Laravel을 정말로 좋아하므로 Lumen은 나에게 매우 호소력이 있습니다.
prograhammer

2
@ prograhammer, 나는 그 특정 기능이 루멘에 포함될 것이라고 생각하지 않습니다. 나는 그것이 루멘이 의도적으로 제거하는 회의가 필요할 것이라고 생각합니다. 또한, 나는 많이 사용하지 않습니다redirect()->intended() Lumen이 중점을 두는 API .
Tyler Crompton 1

1
루멘은 프론트 엔드가 아닌 APIS를위한 것입니다
라킨 Mohapatra

4

루멘 마이크로 프레임 워크는 경량 버전의 라 라벨 풀 스택 프레임 워크입니다. 루멘은 라 라벨 구문과 컴포넌트를 사용하며 라라 벨로 쉽게 '업그레이드'할 수 있습니다.

Lumen은 Microservices 개발 및 API 개발을 위해 설계된보다 전문화 된 (제거 된) 프레임 워크입니다. 따라서 HTTP 세션, 쿠키 및 템플릿과 같은 라 라벨의 일부 기능은 필요하지 않으며 루멘은 라우팅, 로깅, 캐싱, 대기열, 유효성 검사, 오류 처리 및 기타 기능을 유지하면서 필수 기능을 제거합니다.


1

왜 루멘인가?

루멘은 라 라벨 기반의 마이크로 서비스 및 초고속 API를 구축하기위한 완벽한 솔루션입니다. 실제로 가장 빠른 마이크로 프레임 워크 중 하나입니다. Laravel 응용 프로그램을 지원하기 위해 놀랍도록 빠른 서비스를 작성하는 것이 결코 쉬운 적이 없었습니다. 문서

루멘은 API를 빌드하기위한 프레임 워크로, 요청에 대한 JSON 응답을 제공합니다. 그게 다야.

이러한 종류의 응용 프로그램은 일반적으로 웹 서비스라고합니다. 합니다.

Lumen 5.2 업데이트에서는 라 라벨보기, 세션 등을 지원하지 않으므로 풀 라 라벨 프레임 워크로 업그레이드해야합니다.

라 라벨 프레임 워크의 일부 구성 요소는 성능을 위해 다른 패키지와 교체됩니다. 여기에서 확인하십시오

루멘을 고려할 수있는 시나리오 예

  • API를 통해 다른 개발자에게 애플리케이션의 일부 기능을 열 수 있습니다
  • 응용 프로그램은 웹 및 모바일 응용 프로그램을 모두 지원해야하므로 Lumen API로 싸인 DB에 데이터를 저장하는 것이 좋습니다.
  • 확장 성을 중요한 점으로 생각할 때 루멘이 필요할 수 있습니다.

-1

라 라벨과 루멘의 주요 차이점은 라 라벨은 루멘에없는 장인 명령을 가질 수 있다는 것입니다.


이것은 사실이 아니거나 적어도 최신이 아닙니다. 이전 버전에 대해서는 잘 모르지만 lumen 7.x를 설치했으며 장인 명령이 있습니다
Jonas Merhej
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.