ฉันอ่านเอกสารและดูเหมือนว่าลูเมนเป็น Laravel ที่มีคุณสมบัติน้อยกว่า ฉันต้องคิดถึงบางสิ่ง ฉันกำลังมองหาตารางเปรียบเทียบองค์ประกอบและคุณสมบัติของทั้ง Laravel และ Lumen ไม่มีใครรู้ถึงความแตกต่าง?
ฉันอ่านเอกสารและดูเหมือนว่าลูเมนเป็น Laravel ที่มีคุณสมบัติน้อยกว่า ฉันต้องคิดถึงบางสิ่ง ฉันกำลังมองหาตารางเปรียบเทียบองค์ประกอบและคุณสมบัติของทั้ง Laravel และ Lumen ไม่มีใครรู้ถึงความแตกต่าง?
คำตอบ:
ด้วย Lumen เวอร์ชันล่าสุด (5.2) การทำไมโครโฟลมุ่งเน้นที่ Stateless API เอกสารฯ :
Lumen 5.2 แสดงให้เห็นถึงการเปลี่ยนแปลงในการลดน้ำหนักลูเมนเพื่อมุ่งเน้นการให้บริการไร้สัญชาติ JSON APIs ดังนั้นเซสชันและมุมมองจะไม่รวมอยู่ในกรอบงานอีกต่อไป หากคุณต้องการเข้าถึงฟีเจอร์เหล่านี้คุณควรใช้เฟรมเวิร์ก Laravel แบบเต็ม
Lumen คือทั้งหมดที่เกี่ยวกับความเร็ว มันเร็วกว่าและสามารถรองรับคำขอได้มากขึ้นต่อวินาทีกว่า Laravel
Laravel เป็นเฟรมเวิร์กที่รวมส่วนประกอบหลายอย่างเข้าด้วยกัน (บุคคลที่สามและส่วนประกอบของ Laravels เอง) ตอนนี้ Lumen ใช้ประโยชน์จากส่วนประกอบเดียวกันจำนวนมาก แต่ตัดขั้นตอนการบูตสต็อกให้เหลือน้อยที่สุด คุณสามารถพูดได้ว่ามันเป็น "กาวที่แตกต่าง" ส่วนประกอบ (และดังนั้นคุณสมบัติมากมาย) ส่วนใหญ่จะเหมือนกัน
การปรับปรุงประสิทธิภาพทำได้โดยนำความยืดหยุ่นของกรอบงานไปใช้ในแง่ของการกำหนดค่าและการเปลี่ยนแปลงกระบวนการบูตเริ่มต้น
นอกจากนั้นคุณสมบัติเพิ่มเติมถูกปิดใช้งานโดยค่าเริ่มต้นและจะต้องเปิดใช้งานก่อนจึงจะสามารถใช้งานได้ ตัวอย่างเช่น: Facades (like DB::table()
)
ก่อนอื่นคุณต้องยกเลิกการใส่เครื่องหมายบรรทัดนี้bootstrap/app.php
เพื่อเปิดใช้งาน:
// $app->withFacades();
เช่นเดียวกันสำหรับไฟล์สภาพแวดล้อม Dotenv และ Eloquent
สำหรับการกำหนดเส้นทาง Lumen ใช้nikic / FastRouteแทนที่จะเป็นเราเตอร์ symfonys เพราะมันทำงานได้ดีขึ้นมากและให้เฟรมเวิร์กขนาดเล็กเพิ่มขึ้นอีกมาก
นอกเหนือจากนั้นทุกอย่างก็เหมือนกับใน Laravel
อ่านได้ดีบน Lumen
Lumen ไม่ได้ถูกออกแบบมาเพื่อแทนที่ Laravel แต่เป็นเฟรมเวิร์กที่พิเศษ (และถอดแบบ) ที่ออกแบบมาสำหรับ micro-services และ API มันใช้คุณสมบัติที่ไม่จำเป็นสำหรับ API เช่นเซสชัน HTTP และคุกกี้และยัง จำกัด จำนวนตัวเลือกการกำหนดค่า Lumen ใช้ความยืดหยุ่นของ Laravel เพื่อความเร็ว
อย่างไรก็ตามคุณสามารถเพิ่มส่วนประกอบ Laravel ลงใน Lumen เพื่อขยายได้ดังนั้นจึงสามารถใช้งานได้มากกว่าบริการไมโครและ API อย่างไรก็ตามหากเป้าหมายของคุณคือการขยาย Lumen ให้เป็นเว็บไซต์คุณอาจใช้ Laravel แทน
พวกเขายังมีกรณีการใช้งานที่แตกต่างกัน Lumen และ Laravel ตั้งใจทำงานร่วมกัน สำหรับ API และบริการมักถูกเรียกใช้ Lumen สำหรับแอปพลิเคชันที่ผู้ใช้หันไปใช้ Laravel
คำตอบนี้มาจากบล็อกโพสต์ที่ฉันเขียนซึ่งอธิบายความแตกต่างระหว่าง Lumen และ Laravel
อ้างอิงจาก Matt Stauffer
Lumen มีรากฐานเดียวกันกับ Laravel และมีองค์ประกอบเดียวกันหลายอย่าง แต่ Lumen ถูกสร้างขึ้นสำหรับ microservices ไม่มากสำหรับแอปพลิเคชันที่ต้องเผชิญกับผู้ใช้ (แม้ว่าจะสามารถใช้ได้กับทุกสิ่ง) เช่นนี้ส่วนหน้าเช่น Bootstrap และ Elixir และ bootstrap การรับรองความถูกต้องและเซสชันไม่ได้เปิดใช้งานนอกกรอบ และมีความยืดหยุ่นน้อยกว่าสำหรับการขยายและเปลี่ยนไฟล์บู๊ตสแตรป
คุณสามารถอ่านเพิ่มเติม ที่นี่
npm install
สิ่งที่ยังไม่พร้อม "out-of-the-box" อย่างสมบูรณ์ ดังนั้นเราจึงไม่สูญเสียอะไรเกี่ยวกับสิ่งเหล่านี้มากนักโดยเปลี่ยนเป็น Lumen ใน Lumen ฉันเพิ่งสร้าง package.json และ npm ติดตั้ง Elixer และตั้งค่า bower และเสร็จสิ้น ...
redirect()->intended
ตัวอย่างเช่นคุณไม่สามารถทำ ฉันหวังว่าลูเมนจะตามทันในเรื่องเหล่านี้ ฉันชอบ Laravel ที่ไม่มี ORM (Eloquent) จริงๆและดังนั้น Lumen จึงดึงดูดฉันมาก
redirect()->intended()
API ซึ่งเป็นสิ่งที่ Lumen ให้ความสำคัญ
การทำไมโครโฟลูเมนแบบลูเมนเป็นรุ่นน้ำหนักเบาของเฟรมเวิร์กสแต็กเต็มซ้อน Lumen ใช้ไวยากรณ์และส่วนประกอบของ Laravel และสามารถ 'อัพเกรด' เป็น Laravel ได้อย่างง่ายดาย
Lumen เป็นเฟรมเวิร์กที่พิเศษ (และถอดแบบ) ที่ออกแบบมาเพื่อการพัฒนาไมโครซอฟท์ ดังนั้นคุณสมบัติบางอย่างใน Laravel เช่นเซสชัน HTTP คุกกี้และการสร้างเทมเพลตจึงไม่จำเป็นและ Lumen จะนำสิ่งเหล่านั้นออกไปทำให้สิ่งที่จำเป็น - การกำหนดเส้นทางการเข้าสู่ระบบการแคชการรอคิวการตรวจสอบความถูกต้องการจัดการข้อผิดพลาด
ทำไมต้องลูเมน?
Lumen เป็นโซลูชั่นที่สมบูรณ์แบบสำหรับการสร้างบริการไมโครที่ใช้ Laravel และ API ที่รวดเร็ว ในความเป็นจริงมันเป็นหนึ่งในไมโครเฟรมเวิร์กที่เร็วที่สุด การเขียนบริการที่รวดเร็วอย่างน่าทึ่งไม่เคยง่ายกว่านี้มาก่อนเพื่อรองรับแอปพลิเคชั่น Laravel ของคุณ คุณหมอ
Lumen เป็นเฟรมเวิร์กในการสร้าง API ซึ่งจะให้บริการการตอบสนอง JSON สำหรับคำขอของคุณเป็นหลัก แค่นั้นแหละ.
เหล่านี้ชนิดของการใช้งานที่เป็นที่รู้จักกันเป็นบริการเว็บทั่วไป
ในฐานะที่เป็นของการปรับปรุง Lumen 5.2 มันไม่รองรับมุมมอง laravel เซสชันและอื่น ๆ ... ซึ่งคุณจะต้องอัพเกรดเป็น laravel framework เต็มรูปแบบ
ส่วนประกอบบางส่วนของเฟรมเวิร์ก Laravel นั้นสลับกับแพ็คเกจอื่นเพื่อประสิทธิภาพ ตรวจสอบพวกเขาที่นี่
ตัวอย่างสถานการณ์ที่เราสามารถพิจารณาลูเมน
ความแตกต่างที่สำคัญระหว่าง laravel และ lumen คือ Laravel สามารถมีคำสั่งแบบ artisan ซึ่ง lumen ไม่มี