نه، واقعا چرا لاراول ؟

اول از همه بزارین ببینیم فریم ورک چیه ؟فریم ورک در اصطلاح کلی یه ساختار یا یک قالب مفهومیه که از قبل تعیین شده که بعنوان راهنما ازش استفاده میشه و کمک میکنه به این که بشه چیزی رو ساخت و توسعه داد که در نهایت مفید واقع بشه.حالا مفهوم فریم ورک توی نرم افزار و برنامه نویسی چیه ؟توی برنامه نویسی هم فریم ورک یک قالب یا یک ساختار مفهومیه که از قبل توسط یک سری متخصص طراحی شده و شامل مجموعه ای از کتابخونه هاست که برنامه نویس ها برای ایجاد و توسعه پروژه های نرم افزارشون ازش استفاده میکنن.یک فریم ورک نرم افزار چند کار رو برای ما انجام میده :کمک میکنه پیچیدگی های کار براتون خیلی ساده تر باشه.امکانی فراهم میکنه که کد ها تمیز و مرتب و قابلیت استفاده مجدد رو برای توسعه داشته باشن.به تیم های برنامه نویسی تحمیل میکنه که برنامه ها رو طوری پیاده سازی کنن که پایداری بیشتری داشته باشه، باگ های کمتری داشته باشه و همچین درآینده انعطاف بیشتری رو برای توسعه داشته باشه.تست گرفتن و دیباگ کردن برنامه رو خیلی ساده تر میکنه.و حالا فریم ورک های وب :فریم ورک وب یک فریم ورک نرم افزار هست که برای کمک به پیاده سازی و توسعه برنامه های تحت وب طراحی شده که شامل وب سرویس ها ( خدماتی که از طریق وب ارائه میشه ) و api ها ( سرویس هایی برای ارتباط برنامه های مختلف با هم ) میشه. هدف اصلی فریم ورک های وب به این برمیگرده که از سربار فنی مرتبط با فعالیت های متداولیکه توی توسعه برنامه های وب بصورت مکرر انجام میشن کم کنه.فریم ورک Php :فریم ورک php مجموعه ای از کلاس ها و کتابخونه هاست که کار تولید و توسعه برنامه وب رو برامون ساده و خیلی آسون تر میکنه.لاراول چیست ؟لاراول یکی از فریم ورک های پر طرفدار، متن باز و مدرن وب اپلیکیشن هست که به کمک اون میشه وب اپلیکیشن ها رو به سرعت و به راحتی شخصی سازی کرد.توسعه دهندگان لاراول رو بخاطر پرفورمنس بالا، امکانات زیاد و در نهایت مقیاس پذیری بالایی که ارائه میده، نسبت به بقیه فریم ورک ها ترجیح میدن. از اونجایی که لاراول یکی از ساختار هایی که دنبال میکنه MVC هست این فریم ورک رو نسبت به php خیلی کاربردی تر میکنه.لاراول در تلاشه با راحت تر کردن کار های متدوالی مثل احراز هویت، آدرس دهی، کار با session ها و caching که در اکثر پروژه های وب نیاز هست که رنج های توسعه رو از بین ببره. این فریم ورک معماری منحصر به فردی داره که به توسعه دهنده اجازه میده در مواقع نیاز زیر ساخت خاصی که برای برنامه خودش نیاز داره رو پیاده کنه.فریم ورک لاراول با این امکانات تنها برای پروژه های بزرگ استفاده نمیشه بلکه برای پروژه های کوچیک هم گزینه بسیار خوبیه.ویژگی های کلیدی لاراول :ماژولار بودن و پشتیبانی از چند برنامگی : ماژولار بودن این اجازه رو میده که اجزاء سیستم بصورت جدا از هم طراحی و پیاده سازی بشن ولی در نهایت اونها دوباره با هم ترکیب میشن. فرضا شما بخش بیزینس برنامه رو به بخش های مختلف تقسیم میکنین که به هم وابسته هستند و در نهایت اونها با هم کار میکنند.احراز هویت : بحث احراز هویت مهم ترین بخش هر وب اپلیکیشن هست و توسعه دهندگان زمان خیلی زیادی رو صرف نوشتن کد های احراز هویت میکنن. که این مورد در لاراول وجود داشت و در آپدیت لاراول 5 خیلی بهتر هم شده.منطق کلی برنامه : منطق کلی هر برنامه لاراول میتونه از طریق Controller ها یا مستقیما با تعریف Route ها که سینتکسی مشابه فریم ورک Sinatra دارن، پیاده سازی بشه. لاراول با امتیازات زیادی طراحی شده، فرضا اون سطح از منعطف بودنی که یک توسعه دهنده یا برنامه نویس انتظار داره رو برآورده میکنه و برنامه نویس رو قادر میسازه که هر چیزی از سایت های کوچیک گرفته تا برنامه های مهم و بزرگ رو براحتی پیاده سازی کنه.ذخیره سازی موقت ( Caching ) : اصطلاح Caching به معنی ذخیره سازی موقت داده هاست که امکان دستیابی سریع هم براش فراهم باشه. اکثرا از این ویژگی برای کاهش زمانی که نیازه برای اطلاعات با دیتابیس ارتباط برقرار کنیم یا یک سری سرویس های ریموت دیگه استفاده میشه. طبیعتا اگر ما برای یک سری از داده های تکراری مجبور نباشیم به طور مستمر با دیتابیس ارتباط برقرار کنیم، از سربار سرور هم کم میشه و این مورد به این کمک میکنه که برنامه رو سریعتر و کاربر پسندتر نگه داریم.لینک کردن وابستگی ها : توی لاراول ویژگی ای وجود داره به اسم Inversion of control که یک ابزار قدرتمند برای مدیریت کردن وابستگی های کلاس هاست. این ویژگی یک روش برای حذف کد های پیچیده و اضافی برای افزودن وابستگی هاست که یکی از پرکاربرد ترین امکانات لاراول به حساب میاد.آدرس دهی ( Routing ) : بخش Route های لاراول کار رو برای تعریف مسیردهی های برنامه خیلی راحت کرده و Url های مورد نیاز برنامه رو با انعطاف خیلی خوب استفاده و کنترل کنیم.رست فول Controllers : در لاراول این امکان بصورت اختیاری فراهمه که برنامه نویس بتونه منطق یا عملیات های پشت پرده درخواست های GET و POST رو بصورت جداگونه مدیریت کنه.تست و خطایابی : لاراول بصورت پیش فرض در داخل خود فریم ورک این امکان رو فراهم کرده که توسعه دهنده بتونه برای بخش های مختلف برنامه تست بنویسه و اگر جایی دچار مشکل بود براحتی رفع کنه.صفحه بندی خودکار : یکی از بخش های بسیار مهم در انواع زبان ها و فریم ورک ها با اون سر و کار داریم تعدد داده ها و رکورد هاست که ما نمیتونیم تمام داده هایی که برای جست و جوی کاربر موجود هست رو بهش برگردونیم، در اینجای کار نیازه که ما داده ها رو بصورت بخش بخش برای کاربر نشون بدیم و برای این کار اصطلاحا ما داده ها رو صفحه بندی میکنیم، لاراول این کار رو در صورت نیاز برنامه نویس به ساده ترین راه ممکن انجام میده و برنامه نویس مجبور نیست هیچ کد اضافه رو برای این کار بنویسه.موتور قالب ( Template Engine ) : در لاراول Blade ها خیلی ساده هستن و موتور صفحه بندی قدرتمندی در لاراول وجود داره. بر خلاف قالب Controller ها، Blade ها از بخش های جدا تشکیل میشن و با وراثت از قالب ها خودشون رو تکمیل میکنند. تمام Blade ها بایستی پسوند blade.php. رو داشته باشند. ابزار ORM ایلوکوئنت (Eloquent) : همچنین لاراول رابطی بسیار قدرتمند برای تعامل با دیتابیس رو درون خودش داره که خیلی کار رو راحت میکنه و دردسر های نوشتن کوئری های خام رو از بین میبره. حتی اگر زمانی هم رسید که امکانات لاراول نیاز شما رو برطرف نکرد، شما این امکان رو دارین که از طریق همین رابط از کوئری های خام استفاده کنین.قابلیت استفاده از چند فایل سیستم : لاراول 5 بصورت native این قابلیت رو برای توسعه دهنده ها فراهم کرده که بتونن از چند فایل سیستم مختلف استفاده کنن. برای فراهم کردن این کار لاراول از پکیجی به نام Flysystem استفاده کرده. برنامه نویس میتونه تنظیمات هر نوع ذخیره سازی محلی یا Cloud based رو براحتی روی برنامه اعمال کنه و ازش استفاده کنه. و همچنین برنامه نویس ابزاری رو در اختیار داره که به راحتی میتونه از هر نوع از ذخیر سازی که توی تنظیمات اعمال کرده بدون دردسر بهره ببره.خب اینها تنها بخش هایی از ابزار ها ویژگی هایی بود که لاراول فراهم کرده، خیلی ویژگی های بیشتر و حرفه ای تری هم در این فریم ورک پرطرفدار وجود داره و در هر انتشار یا آپدیت جدید کلی ویژگی کاربردی جدید بهش اضافه میشه.Reference : https://blog.vanila.io/why-laravel-is-best-php-framework-98a2784d76dc