لاراول چیست؟ کاملترین و سادهترین معرفی Laravel!
در این مقاله میخوانید
لاراول چیست؟ لاراول، چارچوب متنباز برنامهنویسی وب با زبان PHP و عصای دست توسعهدهندگان بکاند است. این چارچوب برای طراحی وبسایتها و برنامههای کاربردی وب پیچیده، بهویژه آنهایی که با پایگاه داده سروکار دارند، استفاده میشود. اگر میخواهید در مورد این فریمورکِ محبوب PHP بیشتر بدانید، در این مطلب از مدیریت محتوا بلاگ پارس پک میخواهیم به همین موضوع بپردازیم؛ تا انتها با ما همراه باشید!
این لاراول است که یکهتازی میکند!
لاراول کارِ خود را از سال ۲۰۱۱ شروع کرد و از آن زمان تا حالا، توانسته است به یکی از محبوبترین فریمورکهایِ زبان برنامهنویسی PHP تبدیل شود و از رقبایی مثلِ Yii ،Symphony و CodeIgniter پیشی بگیرد. نمودار زیر که روند محبوبیت این فریمورکها را نشان میدهد، بهروشنی به ما ثابت میکند که با Laravel، تقریباً هیچ جایی برای دیگر فریمورکهای PHP نیست!
اگر از من بپرسند که دلیل اهمیت لاراول چیست، حتماً پاسخ میدهم که در بسیاری از پروژههای توسعهی وب، این لاراول است که با تکیه بر PHP، یکهتازی میکند؛ و چه دلیلی بهتر از این برای اهمیت یک فریمورک میتواند وجود داشته باشد؟
ما با نمایش گوشهای از قدرت Laravel شروع کردیم اما هنوز درست نمیدانیم که لاراول چیست؟
فریم ورک لاراول چیست؟
لاراول (Laravel) فریمورک متنبازی است که برای زبان برنامهنویسی PHP نوشتهشده و از آن برای توسعهی وبسایتها و وباپلیکیشنها استفاده میشود. البته نباید تصور کرد که PHP و لاراول، تنها زبان برنامهنویسی و فریمورکهایی هستند که برای برنامهنویسی سمت بکاند وبسایت استفاده میشوند؛ زبانهای برنامهنویسی قدرتمند دیگری مثل JavaScript با فریمورک Node.js یا C# با فریمورک ASP .NET Core یا حتی Django که رویِ PHP نوشتهشده هم وجود دارند و همچنان محبوب هستند. بنابراین، اینکه ما میخواهیم ببینیم که Laravel چیست، چیزی از ارزشهای زبانها و فریمورکهای دیگر کم نمیکند.
یکی از مزایای لاراول این است که از معماری MVC (Model-View-Control) برای توسعه استفاده میکند. این یعنی فرایند توسعه در این فریمورک به ۳ جز اصلی تقسیم میشود:
۱. Model: این قسمت، مدیریت دادهها و همچنین منطق برنامه را به عهده دارد. بخش مدل ارتباط مستقیمی با دیتابیس داشته و دادهها را استخراج یا ذخیره میکند.
۲. View: این لایه وظیفهی نمایش رابط کاربری (UI) به کاربر را بر عهده دارد. به عبارت دیگر، بهطور مستقیم با HTML ،CSS و JavaScript در تعامل است. میتوان نام این بخش را واحد «روابط عمومی» لاراول هم گذاشت!
۳. Controller: مغز متفکر معماری MVC، لایهی کنترلر است! این لایه اطلاعات کاربر را از قسمت View دریافت و با قسمت Model ارتباط برقرار میکند تا همین اطلاعات پردازش شوند و در نهایت قسمت View را بر اساس نتایج پردازش اطلاعات، مجدداً بهروز میکند.
اگر این سوال در ذهنتان ایجادشده که مزیت استفاده از معماری MVC در لاراول PHP چیست، باید بدانید که این سیستم، هم زمان توسعه را خیلی سریعتر میکند و هم نگهداری از کُدها را سادهتر کرده و به مقیاسپذیری هم کمک میکند. به همین دلیل است که یکی از مهمترین کاربردهای لاراول، استفاده از آن در توسعهی پروژههای سفارشی است.
در قسمت بعدی، در مورد کاربردهای لاراول بیشتر توضیح میدهیم.
مهمترین کاربردهای لاراول چیست؟
تا اینجا یاد گرفتیم که لاراول چیست و آیا واقعاً فریمورکی هست که در بازار کار به آن نیاز داشته باشند یا نه. حالا بیایید ببینیم که این فریمورک، دقیقاً چه کاربردهایی دارد.
۱. طراحی وبسایتهای داینامیک
یکی از مهمترین کاربردهای لاراول طراحی وبسایتهای داینامیک است. طراحی سایت با لاراول بهدلیل استفاده از معماری MVC، به سادگی امکانپذیر است.
۲. طراحی اپلیکیشن
منطقِ طراحی وبسایت، با اپلیکیشن چندان تفاوتی ندارد. در واقع هم وبسایت و هم اپلیکیشن، نیاز به قسمت Backend دارند تا کارهای سمت سرور و همچنین ارتباط با پایگاه داده را انجام دهد. به همان دلایلی که برای طراحی سایت توضیح دادم، ساخت اپلیکیشن با لاراول هم بین توسعهدهندگان، محبوبیت بالایی دارد.
۳. APIنویسی
اپلیکیشنها در بسیاری موارد، نیاز دارند که با سرویسها و اپلیکیشنهای دیگر در ارتباط باشند. این کار توسط API انجام میشود. مثلاً اگر شما بخواهید اپلیکیشنی بنویسید که از هوش مصنوعی ChatGPT برای تولید محتوا استفاده کند، باید از API آن استفاده کنید.
لاراول و PHP تخصص بسیار زیادی در نوشتن API دارند. بنابراین اگر وبسایت یا اپلیکیشنی داشته باشید و بخواهید برای آنها API بنویسید، لاراول هیچ وقت شما را ناامید نمیکند.
۴. توسعه سیستمهای مدیریت محتوا (CMS)
لاراول یکی از بهترین فریمورکهایی است که میتواند به شما در توسعهی سیستمهای مدیریت محتوا کمک کند. دلیلش هم استفاده از معماری MVC و همچنین قابلیت انعطافپذیری بالای آن است. راه اثبات این موضوع هم همین بس که بکاندِ بزرگ خاندانِ سیستمهای مدیریت محتوا یعنی وردپرس، با PHP نوشته شده است!
برای آشنایی با رکوردهای دیتابیس در Eloquent لاراول مقاله زیر را از دست ندهید.
لاراول چطور کار میکند؟
حالا بیایید ببینیم روش کارکرد لاراول چیست. لطفاً از عنوانِ به ظاهر پیچیدهی این قسمت جا نخورید؛ همه چیز خیلی سادهتر از چیزی که فکر میکنید اتفاق میافتد:
۱. درخواست کاربر
همه چیز از یک درخواست (Request) شروع میشود. اولین درخواست هم واردکردن آدرس وبسایت شما در مرورگر و درخواست برای دسترسی به وبسایت است.
۲. کنترل درخواست با وب سرور
بالاخره درخواستی به وبسایت رسیده و باید به آن رسیدگی شود. مسئولیت این کار با وب سرور است. وبسایت شما احتمالاً از یکی از وب سرورهای NginX و یا Apache استفاده میکند. وظیفهی وب سرور این است که مثلِ یک مامور کنترل، کنار دربِ وبسایت شما بایستد و تصمیم بگیرد که هر یک از درخواستها به کدام قسمت برود.
۳- ارسال درخواستهای مرتبط به PHP
بعضی از درخواستها کلاً ارتباطی به PHP ندارند؛ اما اگر وب سرور تشخیص دهد که درخواست صادر شده، به فرایندهای داینامیک نیاز دارد، درخواست را مستقیماً به سمت PHP هدایت میکند. مثلِ زمانیکه کاربر میخواهد یک پست از وبلاگ سایت شما را ببیند.
۴. لاراول وارد صحنه میشود
شما با برنامه نویسی لاراول کاری کردهاید که PHP که حُکمِ پدری دارد، خودش را درگیر این موضوعات نکند؛ در عوض این لاراول است که از یک طرف بر اساس PHP نوشتهشده و از طرفِ دیگر، خیلی چابک است و امکانات بیشتری هم دارد. بنابراین، درخواست به لاراول تحویل داده میشود و تعیین مسیر درست برای اجرا شدن کُدهای مرتبط، توسط این فریمورک انجام میشود.
۵. لاراول همان کاری را میکند که باید!
در این مرحله، کار لاراول چیست؟ خیلی ساده: لاراول بررسی این موضوع که درخواست به کدام قسمت برنامه تعلق دارد، دقیقاً همان کاری را انجام میدهد که کُدنویسی شده است. به این مرحله، Business Logic گفته میشود و قسمت زیادی از هنرِ برنامهنویسی لاراول شما در همین قسمت مشخص میشود.
۶. لاراول پاسخ میدهد!
در مرحلهی بعدی باید به درخواست ایجاد شده، پاسخ داد. این کار را هم لاراول انجام میدهد. حالا این پاسخ میتواند نشان دادن همان صفحهای که کاربر روی لینک آن کلیک کرده یا نشان دادن برخی از دادههای JSON و یا هر چیز دیگری باشد. در گفتگوهای فنی، به این پاسخ دادن، Response گفته میشود.
این ۶ مرحله، اساسیترین روندی است که در تمامی درخواستها انجام میشود. حالا دیگر میتوانم مطمئن باشم که میدانید کار لاراول چیست و چطور به درخواستهای کاربران پاسخ میدهد. حالا بیایید ببینیم چه نسخههایی از لاراول وجود دارد و هر کدام چه ویژگیهایی دارند.
انواع نسخههای فریم ورک لاراول
مثلِ هر نرمافزار یا زبان برنامهنویسی، لاراول هم از زمان تولدش تا حالا، پیشرفتهای زیاد داشته است. اگر شما هم میخواهید بدانید که ویژگیهای هر نسخه از لاراول چیست، در جدول زیر، ورژنهای مختلف لاراول و توضیحات مربوط به هر یک، درج شده است:
نسخه | تاریخ انتشار | توضیحات |
Laravel 1 | ۳۰ آگوست ۲۰۱۷ | اولین نسخه لاراول |
Laravel 2 | ۲۲ ژانویه ۲۰۱۳ | شامل Blade templating engine و Artisan CLI |
Laravel 3 | ۶ ژوئن ۲۰۱۳ | معرفی Eloquent ORM و Bundles |
Laravel 4 | ۱۶ سپتامبر ۲۰۱۴ | شامل Composer dependency management و Interfaces |
Laravel 5 | ۹ فوریه ۲۰۱۵ | اضافه شدن شیء گرایی، Namespaceها و Unit Testing |
Laravel 5.1 | ۳ آگوست ۲۰۱۵ | مسیریابی (Routing) بهبود یافته، پیشرفتهایی در Artisan و زمانبندی کلاس Job |
Laravel 5.2 | ۱ دسامبر ۲۰۱۵ | اضافه شدن Caching، سینتکس Blade و دستورات جدید در Artisan |
Laravel 5.3 | ۲۰ آگوست ۲۰۱۶ | اضافه شدن کتابخانهی موتور جستجوی Scout، بهبود مدیریت خطاها و فیچرهای جدیدی برای Blade |
Laravel 5.4 | ۱۰ ژانویه ۲۰۱۷ | ادغام با Vue.js، پشتیبانی وب پک و دستورات جدید Artisan |
Laravel 5.5 (LTS) | ۳۰ آگوست ۲۰۱۷ | پشتیبانی تا ۳۰ آگوست ۲۰۲۰ برای رفع اشکالات امنیتی |
Laravel 5.6 | ۷ فوریه ۲۰۱۸ | قابلیت های جدید مانند Scout ،Vapor و Collections |
Laravel 5.7 | ۴ سپتامبر ۲۰۱۸ | بهبود عملکرد، Blade Directives جدید و Artisan Commands |
Laravel 5.8 | ۲۶ فوریه ۲۰۱۹ | ویژگی های جدید مانند Webhooks ،Queues و mejorado Dusk |
Laravel 6 (LTS) | ۳ سپتامبر ۲۰۱۹ | پشتیبانی تا 3 سپتامبر 2022 برای رفع اشکالات امنیتی و ۶ فوریه ۲۰۲۴ برای رفع اشکالات |
Laravel 7 | ۳ مارس ۲۰۲۰ | Artisan بهبود یافته، Blade Directives جدید و Componentها |
Laravel 8 | ۲۶ فوریه ۲۰۲۱ | Laravel Sanctum ،WebSockets ،Blade Component ها و پشتیبانی از PHP 8 |
Laravel 9 | ۸ فوریه ۲۰۲۲ | Hotwire ،Tailwind CSS ،Blade Component ها و پشتیبانی از Laravel Nova |
Laravel 10 | ۱۴ فوریه ۲۰۲۳ | بهینهسازی بیشتر برای Blade، خطاهای Mejorado، پشتیبانی از PHP 8.1 و بهینهسازی سیستم گزارشدهی |
نسخهی ۱۱ لاراول هنوز منتشرنشده است اما شنیدهها حاکی از این است که در ورژن جدید، شگفتیهای جدیدی در انتظار طرفداران لاراول است. با خواندن جدول بالا، ممکن است بپرسید که تفاوت ورژن LTS با دیگر ورژنهای لاراول چیست. ورژنهای LTS (Long Term Support)، پشتیبانی زمانی بیشتری دارند تا اشکالات امنیتی و غیرامنیتی رفع شود که البته در توضیحات هم به آن اشاره کردهایم.
اما آیا لاراول، فقط ویژگی و مزایا دارد؟ آیا این فریمورک، هیچ عیبی ندارد؟ در بخش بعدی به این موضوع هم میپردازیم.
مزایا و معایب لاراول
هیچ کس نمیتواند ادعا کند که یک تکنولوژی، سراسر مزیت است و هیچ عیبی ندارد. اگر این ادعا درست بود، اصلاً چه نیازی بود که تکنولوژیهای دیگری، وجود داشته باشند؟ و البته عکس این موضوع هم درست است.
اتفاقاً یکی از مهمترین چالشهای برنامهنویسان، انتخاب تکنولوژی بهینه برای پروژه است. پس الان باید ببینیم که مزایای لاراول چیست، معایب آن را بشناسیم تا بعد از آن بتوانیم تصمیم بگیریم که باید از این فریمورک در پروژههایمان استفاده کنیم یا بهتر است به سراغ زبان دیگری برویم.
مزایای فریمورک لاراول
بهعنوان یکی از طرفداران لاراول و کسی که همچنان اعتقاد دارد که با وجود تکنولوژیهای جوان، همچنان این کُنده است که دود از آن بلند میشود، اجازه دهید تا این بخش را با مزایای لاراول شروع کنم:
۱. توسعه سریع با ابزارهای قدرتمند
لاراول با ارائهی ابزارهای قدرتمندی مثلِ Blade Templating Engine ،Eloquent ORM و Artisan CLI کمک میکند تا فرایند توسعه، خیلی سریع انجام شود.
۲. کُدنویسی کمتر
یکی دیگر از مزایای لاراول، کدنویسی کمتر است که با استفاده از ابزارهای پیشرفتهای مثل Convention Over Configuration این امکان را برایتان مهیا میکند.
۳. کتابخانههای آماده
شما نیازی ندارید که همه چیز را خودتان از همان ابتدا بنویسید؛ لاراول پر از کتابخانههای آمادهای است که از احراز هویت گرفته تا ارسال ایمیل یا حتی پردازش پرداخت را برای شما انجام میدهند. بنابراین در این موارد، شما فقط کافی است تا کُدها را بر اساس نیازتان ویرایش کنید.
۴. ابزارهای دیباگ قوی
یکی دیگر از مزایای لاراول، ابزارهای دیباگ قدرتمندی است که در این فریمورک محبوب قرار داده شده است. با استفاده از این ابزارها، دیگر برای عیبیابی و رفع آنها، کار چندان پیچیدهای ندارید.
۵. طراحی ماژولار
با قابلیت کُدنویسی بهصورت ماژولار، توسعهی آیندهی برنامههایی که مینویسید، خیلی ساده است.
۶. پشتیبانی از پایگاه دادههای مختلف
لاراول از پایگاه دادههای مختلفی مثل PostgreSQL ،MySQL و همچنین SQLite پشتیبانی میکند. این موضوع میتواند انعطافپذیری بسیار زیادی به برنامهنویسان در انتخاب دیتابیس بدهد.
معایب فریمورک لاراول
همین ابتدا بهتر است به این نکته توجه کنید که بعضی از مواردی که در ادامه بهعنوانِ معایب لاراول معرفی میشوند، در واقع شاید عیب نباشند! شاید بهتر باشد اگر اسمشان را محدودیت بگذاریم. اما به هر حال آنها را آوردهایم تا شما با دیدی روشن به این نتیجه برسید که محدودیتها و معایب لاراول چیست:
۱ یادگیری لاراول، خیلی ساده نیست
وجود ابزارها و ویژگیهای مختلف در لاراول باعث شده است تا یادگیری این فریمورک ساده نباشد. همچنین منحنی یادگیری این فریمورک، تقریباً تُند است؛ این یعنی برای یادگیری و تسلط بر آن، به زمان نسبتاً زیادی نیاز دارید.
۲. نیاز به منابع زیاد
باز هم بهدلیلِ ابزارها و قابلیتهای زیادی که لاراول در اختیار توسعهدهندگان قرار میدهد، این فریمورک به منابع نسبتاً زیاد سرور یا هاست نیاز دارد.
۳. نیاز به سینتکس جدید برای برخی ویژگیها
برخی از ویژگیهای لاراول مانند Blade Templating Engine، سینتکسهای متفاوتی دارند. بنابراین در صورتیکه بخواهید از آنها در برنامههای خود استفاده کنید، حتماً باید این سینتکسها را هم بهصورت کامل یاد بگیرید.
۴. ساختارهای پیچیده از نظر کاربران جدید
لاراول با همهی قدرت خود، ساختارها و سینتکس پیچیدهتری هم نسبت به برخی از زبانها و فریمورکهای جدیدتر دارد. به همین دلیل است که یادگیری آن برای کاربرانی که کار را با تکنولوژیهای جدید شروع کردهاند، مشکلتر است.
اگر تا این قسمت، به این نتیجه رسیدهاید که لاراول همان فریمورکی است که میتواند در پروژهها به شما کمک کند، باید ببینید که برای شروع آموزش لاراول و یا کار کردن به آن، به چه مواردی نیاز دارید. در قسمت بعدی، به این موضوع هم پرداختهام.
برای شروع کار با لاراول، به چه چیزی نیاز داریم؟
حالا باید ببینیم که پیشنیازها کار با لاراول چیست و برای اینکه بتوانید به یک توسعهدهندهی لاراول تبدیل شوید، به چه مهارتهایی نیاز دارید:
۱. مهارت برنامهنویسی به زبان PHP
وقتی میخواهید برنامهنویسی با لاراول را شروع کنید، قاعدتاً اولین چیزی که به آن نیاز دارید، مهارت کُدنویسی به زبانِ PHP است. مفاهیم مهمی مانند متغیرها، توابع، دادهها، عملگرها، ساختارهای کنترلی، مفاهیم بسیار مهم شیءگرایی و موارد متعدد دیگر، از جمله موضوعات مهمی است که برای آموزش لاراول و شروع کار با آن، حتماً به آنها نیاز پیدا میکنید.
۲. آشنایی با HTML و CSS
اگر چه لاراول، فریمورک مخصوص برنامهنویسی Backend سایت است، اما به هر حال یک برنامهنویس بکاند بر مفاهیم اولیهی فرانتاند وبسایت هم تسلط داشته باشد. به همین دلیل است که برای شروع کار، باید با زبانهای نشانهگذاری HTML و CSS هم آشنا باشید.
۳. مهارت کار با دیتابیس
پایگاه داده، مخزنِ تمام اطلاعات وبسایت و اپلیکیشن است و چون برنامهنویسی بکاند، بهشدت به این اطلاعات وابسته است، حتماً باید کار با پایگاه دادههای معروف مثل SQL، جداول، ستونها و همچنین کوئری زدن در دیتابیس را بلد باشید.
۴. نصب ابزارهای موردنیاز
برای آموزش لاراول و همچنین شروع کار با آن، شما باید محیط سرور را روی کامپیوتر خودتان شبیهسازی کنید. برای این کار، ابزارها و نرمافزارهای مختلفی مثلِ XAMPP و همچنین Composer طراحی شده است. بنابراین کار دیگری که باید انجام دهید، نصب XAMPP و Composer روی کامپیوتر شخصیتان است.
هاست پارس پک؛ خانهای امن برای کُدهای شما!
هر چقدر هم به کُدهایی که نوشتهاید وابسته باشید، هر چقدر هم مثلِ فرزندتان باشند، اما تا ابد که نمیتوانند روی لپتاپتان باقی بمانند! هاست پارس پک، خانهی امن آنهاست! روی لینک زیر کلیک کنید و مشخصات خانهی جدید کُدهایتان را ببینید:
جمعبندی
لاراول چیست؟ این سوال یکی از مهمترین موضوعاتی است که ممکن است برای هر برنامهنویس بکاند تازه کاری پیش بیاید. در یک جملهی ساده و مختصر، لاراول یکی از بهترین فریمورکهای زبان PHP است که با استفاده از آن میتوانید برنامهنویسی بکاند وبسایت و اپلیکیشنها را انجام دهید. در این مطلب از بلاگ پارس پک، سعی کردهایم تا همه چیز را در مورد این فریمورک را با زبانی ساده و دقیق توضیح دهیم.
سؤالات متداول
۱. لاراول چیست؟
لاراول یکی از معروفترین فریمورکهای زبان برنامهنویسی PHP است که برای برنامهنویسی Backend وبسایت و همچنین اپلیکیشنها مورد استفاده قرار میگیرد.
۲. لاراول فریمورک بهتری است یا جنگو؟
لاراول یک فریمورک قدرتمند است که در بسیاری از پروژههای سطح بالا استفاده میشود. از طرف دیگر، جنگو هم فریمورکی است که به چالاکی، یادگیری سریع و همچنین امنیت بالا شهرت دارد. بنابراین اینکه کدام یک از این دو، فریمورک بهتری است، کاملاً بستگی به نوع نیاز پروژهی شما دارد.
۳. مهمترین عیب لاراول چیست؟
اگر بتوان اسمش را «عیب» گذاشت، میتوان یادگیری دشوارتر لاراول را با توجه به امکانات بسیار گستردهی آن، بهعنوان مهمترین محدودیت این فریمورک در نظر گرفت.
۴. مهمترین مزیت لاراول چیست؟
استفاده از لاراول مزیتهای زیادی دارد. بهعنوان نمونه، کدنویسی سریع، توسعهی ساده و همچنین امنیت بسیار بالا، کتابخانههای متعدد و … از جمله مهمترین مزایای این فریمورک مشهور است.