Lumen: میکرو فریمورک مبتنی بر لاراول

Lumen: میکرو فریمورک مبتنی بر لاراول

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

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

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

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

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

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

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

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

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

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