Lümen ve Laravel Arasındaki Farklar ve Benzerlikler


182

Belgeleri okudum ve Lumen daha az özelliklere sahip Laravel gibi görünüyor. Bir şey eksik olmalıyım. Hem Laravel hem de Lumen'in bileşenlerinin ve özelliklerinin bir karşılaştırma tablosunu arıyorum. Farkları bilen var mı?


3
Bu doğru görünmüyor. Laravel, Lumen'in Laravel'den türetilmiş bir mikro çerçeve olarak lanse edildiği, yapılandırılabilirliğinin ve genişletilebilirliğinin bir kısmını feda ederek tam özellikli bir çerçevedir.
fijas

3
Lümen Laravel daha az özelliklere sahip. Mesele bu.
Frank


Yanıtlar:


196

Güncelleme (5.2)

Lumen'in (5.2) en son sürümü ile Mikroçerçeve, Durum Bilgisi Olmayan API'lara odaklanır. Dokümantasyon durumları:

Lümen 5.2, Lümen'in yalnızca vatansız, JSON API'lerine odaklanmak için zayıflamadaki bir kaymayı temsil eder. Bu nedenle, oturumlar ve görüşler artık çerçeveye dahil edilmemiştir. Bu özelliklere erişmeniz gerekiyorsa, tam Laravel çerçevesini kullanmalısınız.


Orijinal cevap (<= 5.1)

Lümen tamamen hız demektir . Laravel'den daha hızlıdır ve saniyede daha fazla istek işleyebilir.

Laravel, birçok bileşeni (3. taraf ve Laravels kendi bileşenlerini) bir araya getiren bir çerçevedir. Şimdi Lumen aynı bileşenlerin çoğunu kullanıyor, ancak önyükleme işlemini en aza indiriyor. Bunun "farklı bir yapıştırıcı" olduğunu söyleyebilirsin, bileşenler (ve dolayısıyla birçok özellik) çoğunlukla aynıdır.

Performans artışı, yapılandırma açısından çerçevenin esnekliğinin bir kısmının kaldırılması ve varsayılan önyükleme sürecinin değiştirilmesi ile elde edilir.

Bunun yanı sıra, daha fazla özellik varsayılan olarak devre dışıdır ve kullanılmadan önce etkinleştirilmesi gerekir. Örnek olarak: Cepheler (gibi DB::table())
Bunları bootstrap/app.phpetkinleştirmek için önce bu satırı açmanız gerekir :

// $app->withFacades();

Aynı durum Dotenv ortam dosyaları ve Eloquent için de geçerlidir.

Yönlendirme için Lumen , symfonys yönlendirici yerine nikic / FastRoute kullanır, çünkü çok daha iyi performans gösterir ve mikro çerçeveye başka bir büyük destek verir.

Bunun dışında her şey Laravel'deki ile aynı.

Lümen hakkında iyi okumalar


7
Özellikleri geri almak için rahatsız edici şeyler başlatacak olmamız bu kadar hızlı olur mu?
Sam Dark

1
@SamDark Açıkçası, etkinleştirdiğiniz her özellikle biraz daha yavaş olacak. Ancak, devre dışı bırakılan özellikler performans optimizasyonlarından sadece bir parça olduğu için hala oldukça hızlı olacak
lukasgeiter

Bu yüzden kıyaslama, gerçek uygulamalardaki ek yükü yansıtmaz ve gerçek uygulamalarda daha yüksek olur. TAMAM.
Sam Dark

1
@SamDark Bu blog yazısı nasıl karşılaştırıldığını açıklıyor. Gördüğünüz gibi test uygulaması sadece modelleri veya diğer çerçeve özelliklerini kullanmadan "Merhaba Dünya" döndürür, bu yüzden gerçek bir uygulamadaki performans daha yavaş olacaktır (çoğu durumda fark edilmese de. Uygulamanız hala gülünç hızlı olacaktır)
lukasgeiter

@lukasgeiter RESTful Laravel API ile İyonik bir uygulama geliştirirsem anladığım kadar Lumen kullanmak daha mantıklı olur mu?
mtpultz

45

Lümen Laravel'in yerini almak için tasarlanmamıştır, bunun yerine mikro hizmetler ve API'ler için tasarlanmış daha uzmanlaşmış (ve soyulmuş) bir çerçevedir. HTTP oturumları ve çerezler gibi bir API için gereksiz özellikleri aldı ve ayrıca yapılandırma seçeneklerinin sayısını sınırladı. Kutudan çıkan Lumen, Laravel'in hız esnekliğini feda etti.

Ancak, o kadar, onu uzatmak Lumen laravel bileşenleri ekleyebilir olabilir sadece mikro hizmetler ve API fazla kullanılabilir. Ancak hedefiniz Lumen'i bir web sitesi olacak şekilde genişletmekse, bunun yerine Laravel'i de kullanabilirsiniz.

Ayrıca farklı kullanım durumları vardır. Lümen ve Laravel birlikte çalışmak içindir. API'ler ve hizmetler sıklıkla aranırsa Lumen'i kullanın. Kullanıcıya dönük uygulamalar için Laravel kullanın.


Bu cevap, Lumen ve Laravel arasındaki farkı açıklayan bir blog yazısından alınmıştır.


Bildiğim kadarıyla, çerezler, oturumlar vb. Hala orada. Ancak tembel yüklenecekler ve sadece kullanıldıklarında performansı gerçekten etkileyeceklerdir.
lukasgeiter

Lümen benim tercih ettiğim çerçeve. Eloquent (veya herhangi bir ORM) kullanmıyorum, bu yüzden Lumen bana gerçekten iyi uyuyor.
prograhammer

2
Diyelim ki bir web uygulaması geliştiriyorum ve daha fazla ayrı mantık için (ve kolayca üçüncü taraf uygulamalarına izin vermek için) bir API yazmaya karar verdim. Lumen ile API yazmak ve Laravel ile web sitesi yazmak iyi bir uygulama olur mu?
Tyler Crompton

Bu bir yedek. Farklı bir yönlendiriciye sahip Laravel. Virually hiçbir şey çıkarıldı - sadece isteğe bağlı hale getirildi. Sözde daha hızlı bir Laravel (Lumen) mevcut olduğunda Laravel'i kullanmanın meşru bir nedeni yoktur.
Rick Jolly

14

Matt Stauffer'dan Alıntı

Lümen Laravel ile aynı temele ve aynı bileşenlerin çoğuna sahiptir. Ancak Lumen, mikro servisler için üretilmiştir, kullanıcılara yönelik uygulamalar için çok fazla değildir (her şey için kullanılabilir.) Bu nedenle, Bootstrap ve Elixir gibi ön uç özellikleri ve kimlik doğrulama önyükleme ve oturumları kutudan çıkarılmaz, ve bootstrap dosyalarını genişletme ve değiştirme konusunda daha az esneklik var.

Daha fazlasını buradan okuyabilirsiniz


4
Ayrıca Lumen, Symfony'nin Yönlendirme bileşenini kullanmaz. Bunun yerine, daha yüksek performans için nikik / hızlı rota kullanılır.
Limon Monte

Matt Stauffer'ın Laravel için bower kurulumu , zaten Laravel'deki varsayılan Bootstrap UI öğelerinin amacını yeniyor ve Elixir'e gelince, bu npm installtamamen hazır değil "hazır" diyorum. Bu yüzden, Lümen'e geçerek bunlarla ilgili çok fazla kaybetmiyoruz. Lumen'de sadece bir paket oluşturuyorum. Json ve npm Elixer'i kuruyor ve bower'ı kuruyor ve yapıyorum ...
prograhammer

Ancak, Lümen'i kullandıktan sonra, hayal kırıklıkları olduğunu söyleyebilirim. Şimdiye kadar, istek / yönlendirme / yardımcıların birçoğunun Laravel'de sunulanlara kıyasla eksik olduğunu keşfettim. Örneğin, a redirect()->intended. Lümen'in bu alanlarda yetişmesini umuyorum. ORM (Eloquent) içermeyen bir Laravel'i gerçekten çok seviyorum ve bu yüzden Lumen bana çok çekici geliyor.
prograhammer

2
@prograhammer, bu özelliğin hiç Lumen'e ekleneceğini düşünmüyorum. Bunun Lumen'in kasıtlı olarak ortadan kalktığı bir oturum gerektireceğini düşünüyorum. Ek olarak, redirect()->intended()Lumen'in odaklandığı bir API ile çok fazla kullanım görmüyorum .
Tyler Crompton

1
Lümen APIS için ön taraf değil
Lakin Mohapatra

4

Lümen mikroçerçeve, Laravel tam yığın çerçevesinin hafif bir versiyonudur. Lümen Laravel sözdizimini ve bileşenlerini kullanır ve Laravel'e kolayca 'yükseltilebilir'.

Lümen, Microservices geliştirme ve API geliştirme için tasarlanmış daha uzmanlaşmış (ve soyulmuş) bir çerçevedir. Bu nedenle Laravel'de HTTP oturumları, çerezler ve şablonlama gibi bazı özelliklere gerek yoktur ve Lumen bunları yönlendirir, günlüğe kaydetme, önbelleğe alma, kuyruklar, doğrulama, hata işleme ve diğer birkaç şeyi tutar.


1

Neden Lümen?

Lümen, Laravel tabanlı mikro hizmetler oluşturmak ve hızlı API'lar oluşturmak için mükemmel bir çözümdür. Aslında, mevcut en hızlı mikro çerçevelerden biridir. Laravel uygulamalarınızı desteklemek için şaşırtıcı derecede hızlı hizmetler yazmak hiç bu kadar kolay olmamıştı. doktor

Lumen, temel olarak istekleriniz için JSON yanıtları sunacak API'ler oluşturmak için bir çerçevedir. Bu kadar.

Bu tür uygulamalar genel olarak web servisleri olarak bilinir .

Lumen 5.2 güncellemesinden itibaren, laravel görünümlerini, oturumları vb. Desteklemiyor ... bunun için tam laravel çerçevesine yükseltmeniz gerekecek.

Laravel çerçevesinin bazı bileşenleri performans lehine diğer paketlerle değiştirilir. onları burada kontrol et

Lumen'i düşünebileceğimiz örnek senaryolar

  • Bir uygulamanın bazı özelliklerini API aracılığıyla diğer geliştiricilere açmak isteyebilirsiniz
  • Uygulamanızın hem web hem de mobil uygulamayı desteklemesi gerekiyorsa, verileri Lumen API'sına sarılmış bir DB'de saklamak mükemmel olacaktır.
  • Ölçeklenebilirliği önemli bir nokta olarak gördüğünüzde, lümene ihtiyacınız olabilir

-1

Laravel ve lümen arasındaki temel fark, Laravel'in lümende olmayan esnaf komutları olabileceğidir.


Bu doğru değil ya da en azından güncel değil. Eski sürümler hakkında çok şey bilmiyorum, ancak lümen
7.x'i yükledim
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.