Lumen: میکروفریمورک مبتنی بر لاراول اما سبک‌تر با پرفورمنس بیشتر


Lumen یک میکروفریمورک سریع برای زبان PHP است که با الهام از Laravel طراحی شده است (به طور کلی، منظور از میکروفریمورک پلتفرم‌هایی است که سبک‌تر و کم‌حجم‌تر از فریمورک‌های معمولی هستند.) اگر از طرفداران فریمورک لاراول هستید، اصلاً جای نگرانی نیست چرا که لومن قرار نیست جای لاراول را بگیرد بلکه برعکس، در برخی مواقع به کمک لاراول خواهد آمد که در همین راستا در این پست قصد داریم ببینیم که لومن به چه دردی می‌خورد و برای چه نوع پروژه‌هایی باید از آن استفاده کنیم.

تفاوت‌های لومن با لاراول
در پاسخ به این پرسش که لومن با لاراول چه تفاوت‌هایی دارا است، می‌توان گفت که تفاوت چندانی مابین این دو فریمورک دیده نمی‌شود به جز اینکه لومن سبک‌تر از لاراول است و این به خاطر حذف برخی کامپوننت‌های آن است. در واقع، حذف برخی کامپوننت‌ها به این دلیل بوده تا عملکرد وب اپلیکیشن‌هایی که با این میکروفریمورک نوشته می‌شوند به مراتب بالاتر رود.

به منظور ارتقاء سرعت این فریمورک، تغییراتی بنیادین صورت گرفته که در ادامه به برخی از مهم‌ترین آن‌ها اشاره خواهیم کرد:

- تنظیمات به مراتب کمتر: جالب است بدانیم که این میکروفریمورک به صورت پیش‌فرض اصلاً فولدر کانفیگی ندارد و در صورتی که نیاز به تنظیمات خاصی داشته باشید، این کار از طریق فایل env. صورت می‌گیرد.

- روتینگ این فریمورک تغییر کرده است: عمده‌ترین تغییری که در لومن صورت گرفته، ساختار متفاوت روتینگ این فریمورک نسبت به لاراول است و همین تغییر ساختار روتینگ سرعت این فریمورک را بهبود بخشیده است. لومن برخلاف لاراول که از روتر فریمورک سیمفونی استفاده می‌کند، از FastRoute که یک چارچوب بسیار سبک روتینگ است استفاده می‌کند.

در پاسخ به این پرسش که آیا می‌توان از لاراول به لومن سوئیچ کرد یا خیر، باید بگوییم که این قضیه کاملاً به شرایط پروژه بستگی دارد به طوری که لومن مناسب برای توسعهٔ وب اپلیکیشن‌هایی در مقیاس کوچک است که نیاز به سرعت بالایی دارند.

فرض کنیم که قصد دارید یک وب اپلیکیشن با استفاده از فریمورک لاراول توسعه دهید و زمانی که پروژهٔ شما بیشتر پیش می‌رود، خواهید دید که همه چیز به نوعی پیچیده می‌شود و در چنین لحظه‌ای است که آرزو می‌کردید که ای کاش می‌توانستید پروژهٔ خود را به قسمت‌های کوچک‌تر و در عین حال با قابلیت مدیریت بیشتر تقسیم‌بندی می‌کردید. اینجا است که فریمورک لومن به داد شما می‌رسد چرا که با استفاده از این فریمورک می‌توانید ماژول‌های مجزایی طراحی کرده که هر کدام کار خاصی را انجام داده و با کنار هم قرار دادن آن‌ها، می‌توانید یک وب اپلیکیشن کامل داشته باشید.

در واقع، وقتی که ماژول‌های مختلف پروژه را به صورت مجزا از یکدیگر کدنویسی کنید، فایدهٔ چنین کاری این است که هر ماژول صرفاً زمانی که نیاز به اجرا باشد فراخوانی خواهد شد و همین مسأله منجر به افزایش سرعت وب اپلیکیشن‌های نوشته شده با میکروفریمورک لومن خواهد شد.

نصب Lumen روی لینوکس
نحوهٔ نصب لومن به همان طریقی است که لاراول را نصب می‌کنیم. ابتدا نیاز است که ابزار کامپوزر را نصب کرده سپس دستور زیر را در ترمینال وارد می‌کنیم (برای آشنایی بیشتر با کامپوزر، به مقالهٔ Composer چیست؟ مراجعه نمایید):

$ composer create-project laravel/lumen SokanAcademy --prefer-dist

همان‌طور که می‌بینیم، با استفاده از کامپوزر پروژه‌ای تحت عنوان SokanAcademy ایجاد کرده‌ایم که آخرین نسخهٔ باثبات لومن را از ریپازیتوری این میکروفریمورک دانلود می‌کند. همچنین، کامپوزر به صورت خودکار کلیهٔ وابستگی‌های مورد نیاز لومن را دانلود کرده و در پوشهٔ مد نظرمان قرار می‌دهد.



آتنا ستوده