فریم ورک لاراول چیست ؟
زبان برنامه نویسی PHP یکی از محبوبترین زبانهای برنامه نویسی در حوزه طراحی وب است. این زبان برنامه نویسی Framework های بسیار زیادی دارد که لاراول یکی از آنها است. عاملی که فریم ورک لاراول را از سایر فریم ورکهای زبان PHP متمایز میسازد، ویژگیهای منحصر به فرد آن است.
در حال حاضر این فریم ورک دارای بازار کار بسیار خوبی می باشد و اکثر شرکت های ایرانی به دنبال استخدام افراد متخصص در این زمینه هستند. حال اگر میخواهید بدانید علت محبوبیت و موفقیت فریم ورک لاراول چیست و چرا باید آن را انتخاب کنید، در ادامه این مقاله، با معرفی لاراول و مزایای آن نسبت به بقیه فریم ورکها، با وب سایت ایکس تم همراه باشید.
در حال حاضر این فریم ورک دارای بازار کار بسیار خوبی می باشد و اکثر شرکت های ایرانی به دنبال استخدام افراد متخصص در این زمینه هستند. حال اگر میخواهید بدانید علت محبوبیت و موفقیت فریم ورک لاراول چیست و چرا باید آن را انتخاب کنید، در ادامه این مقاله، با معرفی لاراول و مزایای آن نسبت به بقیه فریم ورکها، با وب سایت ایکس تم همراه باشید.
برای آشنایی با لاراول، ابتدا باید بدانید که فریم ورک چیست؟ فریم ورک یا Framework در لغت به معنی چارچوب است.
فریم ورک برنامه نویسی مجموعه ای از کتابخانهها، استانداردها، دیزاین پترنها و قوانین کدنویسی است که در بستر یک چارچوب نرم افزاری در اختیار توسعه دهندگان و برنامه نویسان قرار میگیرد. برای انواع زبانهای برنامه نویسی مختلف، فریم ورکهای متعددی توسعه داده شده است.
هر یک از این فریم ورکها برای هدفی خاص ایجاد شدهاند، برای مثال فریم ورکهای CodeIgniter ,Symfony ,Zend ,Phalcon CakePHP و Yii که جزو برترین فریم ورکهای زبان PHP بعد Laravel میباشند.
بنابراین برنامه نویسان و توسعه دهندگان از فریم ورکها بهعنوان بستری استاندارد برای طراحی و توسعه اپلیکیشنهای خود استفاده میکنند. در فریم ورکها بسیاری از کدها و دستورات بهصورت از پیش نوشته شده مورد استفاده قرار میگیرند. این توابع و دستورات توسط توسعه دهندگانی با تجربه و متخصص آماده شده اند و برنامه نویسان با استفاده از آنها میتوانند اپلیکیشنهای خود را با سرعت، امنیت و کیفیت بالاتری توسعه دهند.
فریم ورک برنامه نویسی مجموعه ای از کتابخانهها، استانداردها، دیزاین پترنها و قوانین کدنویسی است که در بستر یک چارچوب نرم افزاری در اختیار توسعه دهندگان و برنامه نویسان قرار میگیرد. برای انواع زبانهای برنامه نویسی مختلف، فریم ورکهای متعددی توسعه داده شده است.
هر یک از این فریم ورکها برای هدفی خاص ایجاد شدهاند، برای مثال فریم ورکهای CodeIgniter ,Symfony ,Zend ,Phalcon CakePHP و Yii که جزو برترین فریم ورکهای زبان PHP بعد Laravel میباشند.
بنابراین برنامه نویسان و توسعه دهندگان از فریم ورکها بهعنوان بستری استاندارد برای طراحی و توسعه اپلیکیشنهای خود استفاده میکنند. در فریم ورکها بسیاری از کدها و دستورات بهصورت از پیش نوشته شده مورد استفاده قرار میگیرند. این توابع و دستورات توسط توسعه دهندگانی با تجربه و متخصص آماده شده اند و برنامه نویسان با استفاده از آنها میتوانند اپلیکیشنهای خود را با سرعت، امنیت و کیفیت بالاتری توسعه دهند.
زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید. از لاراول میتوان به عنوان محبوبترین فریم ورک زبان برنامه نویسی PHP یاد کرد. این فریم ورک توانسته است در زمانی کوتاه، به اولین گزینهی توسعه دهندگان برای توسعه برنامههای پیچیده تحت وب تبدیل شود.
لاراول فریم ورکی مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. این فریم ورک امکانات هوشمندی در اختیار برنامه نویسان قرار میدهد و برنامه نویسی را برای آنها لذت بخشتر میکند.
این فریم ورک در بین سایر فریم ورکهای PHP از امنیت و سرعت توسعهی بیشتری برخوردار است و از طریق آن شما قادر خواهید بود بدون اینکه تغییری در کدهای اصلی ایجاد کنید، عملکرد بسیاری از بخشها را تغییر دهید. لاراول کتابخانههای بسیار متنوعی دارد و از اغلب کتابخانههای فریم ورک سیمفونی نیز استفاده میکند. همچنین این فریم ورک سرویسهای مختلفی را برای برنامه نویسان ارائه میدهد. به عنوان مثال سرویس هایی همچون تأیید هویت، دسترسیهای کاربران، کنسول Artisan، پرداخت و صورتحساب، کش (Cache) و … که تنها بخش کوچکی از سرویس هایی است که این فریم ورک در اختیار برنامه نویسان قرار میدهد.
تاریخچه فریم ورک لاراول چیست ؟
حال که فهمیدیم فریم ورک لاراول چیست، در این بخش قصد داریم تاریخچه آن را مورد بررسی قرار دهیم. تیلور اوتوِل (Taylor Otwell) خالق فریم ورک Laravel است. او با هدف ارائه یک راه حل پیشرفتهتر نسبت به فریم ورک CodeIgniter، لاراول را برای توسعه وب اپلیکیشنها ارائه کرد.
فریم ورک laravel – نسخه 1
اولین نسخه این فریم ورک در سال ۲۰۱۱ در اختیار توسعه دهندگان قرار گرفت. سپس یک ماه بعد، نسخه کامل شده و پایدار لاراول منتشر گردید. نسخه لاراول ۱ شامل مکانسیمهای Model ،View ،Session و Navigation بود ولی نبود Controller در آن باعث شد تا این فریم ورک از معماری MVC به صورت واقعی پشتیبانی نکند.
فریم ورک laravel – نسخه 2
لاراول ۲ در همان سال ۲۰۱۱ همراه با بهینه سازیهای متعددی منتشر شد. اصلیترین ویژگی که در این نسخه افزوده شد، پشتیبانی از Controllerها بود. Laravel با ارائه این نسخه توانست به صورت کامل از معماری MVC پشتیبانی کند و به عنوان یک فریم ورک شناخته شود. دومین ویژگی که در این نسخه اضافه شد، موتور رندر قالب blade بود. این موتور رندر با هدف افزایش سرعت توسعه قالبها و کاهش میزان کدنویسی ارائه شد.
فریم ورک laravel – نسخه 3
سومین نسخه از Laravel در سال 2012 منتشر شد. از ویژگیهای مهمی که به این فریم ورک اضافه شده بود، استفاده از خط فرمان CLI بود که با نام artisan شناخته میشد. artisan امکانات بسیاری زیادی در اختیار توسعه دهندگان قرار میدهد. پشتیبانی داخلی از مدیریت سیستم پایگاه داده و ابزارهای کنترلی آن به نام migration ها، پشتیانی از سیستم Packaging و اضافه شدن مستندات بسیار غنی در قالب سایت laravel.com بخشی از ویژگی هایی بود که در این نسخه از Laravel ارائه شده بودند. سومین نسخه از این فریم ورک، توانست محبوبیت زیادی را در بین کاربران ایجاد کند.
فریم ورک laravel – نسخه 4
پس از موفقیت هایی که این فریم ورک در نسخه سوم به دست آورد، در سال ۲۰۱۳ چهارمین نسخه آن بر پایه کدهای Illuminate منتشر شد. این نسخه از لاراول به صورت کامل مورد بازنویسی قرار گرفت و با پشتیبانی از سیستم Composer گام بلندی در جهت پیشرفت و سبقت از سایر رقیبان خود برداشت. به دلیل استفاده از این ویژگی امکان استفاده از پکیجها و کتابخانههای زیادی که توسط سایر برنامه نویسان PHP توسعه داده شده بود، برای کاربران امکان پذیر شد. همچنین امکاناتی مانند ارسال ایمیل به روشهای مختلف و پشتیبانی از حذف شدن با تأخیر رکوردهای بانک اطلاعاتی (Soft Deletion) از دیگر امکانات نسخه 4 لاراول بود.
فریم ورک laravel – نسخه 5
در سال 2015 پس از دو سال از ارائه چهارمین نسخه از این فریم ورک، نسخه 5 لاراول منتشر شد. این نسخه از لاراول از ویژگیهای بسیار متعددی پشتیبانی میکرد. پشتیبانی از سیستم برنامه ریزی اجرای وظایف با استفاده از پکیج Scheduler، بهینه سازی assets، ساده شدن عملیات احراز هویت، همچنین ارائه ساختار درختی برای توسعه اپلیکیشنها، بخشی از قابلیتهای اضافه شده در لاراول 5 بود. این نسخه از Laravel به صورت مداوم مورد بروزرسانی قرار گرفت و در هر یک از این بروزرسانیها امکانات و ویژگیهای زیادی به این فریم ورک اضافه شد.
فریم ورک laravel – نسخه 6
پس از مدتی لاراول نسخه 6 خود را منتشر کرد، که در این نسخه بسیاری از نقصهای نسخه 5 را برطرف کرد و ویژگیهای جدیدی که قطعا مورد انتظار طرفدارانش بود را فراهم ساخت، یکی از این ویژگیها، استفاده از Laravel Vapor بود که برای آشنایی بیشتر با این نسخه و Laravel Vapor میتوانید مقالهی لاراول ۶ را مشاهده نمایید.
فریم ورک laravel – نسخه 7
این نسخه نسبت به نسخه قبلی آن، تغییرات و بهبودهای چشمگیری پیدا کرده است که در ادامه به صورت مفصل از آنها یاد می کنیم.
کار با HTTP Client
لاراول API جدیدی را در اختیارتان قرار داده که با استفاده از آن میتوانید درخواستهای HTTP را سادهتر در سمت پروژه خود پیادهسازی کنید.
آشنایی با Fluent String
Fluent String یک API دیگر از لاراول ۷ است که به شما این امکان را میدهد تا با رشتههای متنی کارهای مختلف انجام دهید. باری مثال بخشی را به ابتدا اضافه کنید یا به دنبال رشتهای در متن بگردید یا رشتهای را از متن خود حذف کنید یا...
کار با Component Tag
در لاراول ۷ شما میتوانید یک کامپوننت را همچون یک تگ HTML در blade لاراول به کار ببرید. این اقدام به بهتر کردن bladeهای شما ختم میشود و در نهایت شما میتوانید پروژه خود را خواناتر و بهتر کنید.
شخصیسازی Stubs
Stubsها قالبهای آمادهای هستند که شما با دستورات artisan فایلهای مختلفی را به سرعت ایجاد میکنید، مانند ایجاد یک کنترلر. حالا در امکانی جدید شما میتوانید این فایلها را شخصی سازی کنید.
تغییرات Route Model Biding
یکی از بهترین اتفاقاتی که در ورژن لاراول ۷ افتاده این است که شما میتوانید key مربوط به Route Model Biding را به شکل ساده در روتهای فایل web.php تغییر دهید این موضوع میتواند به کنترل سادهتر روتها و این سیستم کمک به شدت زیادی کنید
آشنایی با Custom Casts
شما میتوانید برای فیلدهای خود در مدل دلخواه تان نوع داده مشخص کنید که به این موضوع در لاراول cast گفته میشود حالا در لاراول ۷ این امکان جذابتر شده و شما میتوانید انواع دادههای دلخواه خود را هم ایجاد کنید.
تغییرات Markdown Mail
قالبهای مربوط به ایمیل در لاراول ۷ خوشختانه تغییر کرده و ظاهر بهتری بدست آورده اند.
لاراول برای پردازش ریکوئستها از میان افزار یا Middleware استفاده میکند. میتوان گفت که Middleware پلی میان Request و برنامه است. تمام Requestها در لاراول مجبورند از این پل عبور کنند. مثلا لاراول برای تشخیص کاربرانی که احراز هویت نکرده اند از یک میدلور به نام Auth استفاده میکند. تمام صفحاتی که از میدلور Auth استفاده کنند، در صورت باز شدن توسط کاربران احراز هویت نشده به صفحه ورود یا لاگین منتقل میشوند. البته نمیتوان این ابزار را تنها یک ابزار امنیتی دانست. چرا که میتواند موارد کاربرد بسیاری داشته باشد. نمونههایی از این کاربردها عبارتند از:
نظرات خودتان را برای ما و دیگران به اشتراک بگذارید.
کار با HTTP Client
لاراول API جدیدی را در اختیارتان قرار داده که با استفاده از آن میتوانید درخواستهای HTTP را سادهتر در سمت پروژه خود پیادهسازی کنید.
آشنایی با Fluent String
Fluent String یک API دیگر از لاراول ۷ است که به شما این امکان را میدهد تا با رشتههای متنی کارهای مختلف انجام دهید. باری مثال بخشی را به ابتدا اضافه کنید یا به دنبال رشتهای در متن بگردید یا رشتهای را از متن خود حذف کنید یا...
کار با Component Tag
در لاراول ۷ شما میتوانید یک کامپوننت را همچون یک تگ HTML در blade لاراول به کار ببرید. این اقدام به بهتر کردن bladeهای شما ختم میشود و در نهایت شما میتوانید پروژه خود را خواناتر و بهتر کنید.
شخصیسازی Stubs
Stubsها قالبهای آمادهای هستند که شما با دستورات artisan فایلهای مختلفی را به سرعت ایجاد میکنید، مانند ایجاد یک کنترلر. حالا در امکانی جدید شما میتوانید این فایلها را شخصی سازی کنید.
تغییرات Route Model Biding
یکی از بهترین اتفاقاتی که در ورژن لاراول ۷ افتاده این است که شما میتوانید key مربوط به Route Model Biding را به شکل ساده در روتهای فایل web.php تغییر دهید این موضوع میتواند به کنترل سادهتر روتها و این سیستم کمک به شدت زیادی کنید
آشنایی با Custom Casts
شما میتوانید برای فیلدهای خود در مدل دلخواه تان نوع داده مشخص کنید که به این موضوع در لاراول cast گفته میشود حالا در لاراول ۷ این امکان جذابتر شده و شما میتوانید انواع دادههای دلخواه خود را هم ایجاد کنید.
تغییرات Markdown Mail
قالبهای مربوط به ایمیل در لاراول ۷ خوشختانه تغییر کرده و ظاهر بهتری بدست آورده اند.
فریم ورک laravel – نسخه 8
این نسخه از لاراول هم شامل تغییراتی به شرح ذیل می باشد :
تغییر دایرکتوری مدلها
در ورژن جدید لاراول یعنی لاراول 8 دایرکتوری جدید با عنوان Models به پروژه اضافه شده، که البته در ورژنهای 4 لاراول وجود داشته، اما بنا به دلایلی حذف و الان در ورژن 8 دوباره برگشته است.
اضافه شدن پکیجی با عنوان jetstream
در لاراول 8 پکیج laravel/ui حذف شده و پکیج جدید با عنوان jetstream برای پیادهسازی یک سری امکانات به پروژه، اضافه شده است. با استفاده از jetstream شما میتوانید صفحههای عضویت و ورود را به برنامه خود اضافه کنید البته در کنار این دو صفحه شما قابلیت احرازهویت دو مرحلهای و همینطور قابلیت مدیریت sessionها را میتوانید به پروژه ابتدایی خود اضافه کنید.
بهبود حالت نگهداری و تعمیر
متاسفانه قبل از لاراول 8 حالت maintenance یا همان حالت نگهداری و تعمیر دارای ویژگیهای خوبی نبود و نیاز به یک سری موارد جدید به شدت در آن احساس میشد اما در ورژن لاراول 8 ویژگیهای بسیار خوبی به این حالت اضافه شد که نیازمندیهای قبلی ما را به سادگی برطرف میکند.
Model Factory Classes
در ورژن جدید لاراول حالت تعریف Model Factory دستخوش تغییر شده و در ورژن جدید شما Model Factoryها را باید به شکل کلاس تعریف کنید، استفاده از کلاسها قابلیتهای جدیدی به ما میدهد که نحوه کار با Model Factoryها را برای ما لذت بخشتر میکند
بهبود Rate Limiting
در لاراول جدید یعنی لاراول 8 شما کنترل بهتری بر روی محدود سازی تعداد درخواستها دارید یعنی به سادگی میتوانید گروههای مختلف ایجاد کنید و برای هر کدام محدودیت تعداد درخواست مشخص کنید. این ویژگی میتواند کمک زیادی به ایجاد کردن اپلیکیشنهای شما کند.
و ...
تغییر دایرکتوری مدلها
در ورژن جدید لاراول یعنی لاراول 8 دایرکتوری جدید با عنوان Models به پروژه اضافه شده، که البته در ورژنهای 4 لاراول وجود داشته، اما بنا به دلایلی حذف و الان در ورژن 8 دوباره برگشته است.
اضافه شدن پکیجی با عنوان jetstream
در لاراول 8 پکیج laravel/ui حذف شده و پکیج جدید با عنوان jetstream برای پیادهسازی یک سری امکانات به پروژه، اضافه شده است. با استفاده از jetstream شما میتوانید صفحههای عضویت و ورود را به برنامه خود اضافه کنید البته در کنار این دو صفحه شما قابلیت احرازهویت دو مرحلهای و همینطور قابلیت مدیریت sessionها را میتوانید به پروژه ابتدایی خود اضافه کنید.
بهبود حالت نگهداری و تعمیر
متاسفانه قبل از لاراول 8 حالت maintenance یا همان حالت نگهداری و تعمیر دارای ویژگیهای خوبی نبود و نیاز به یک سری موارد جدید به شدت در آن احساس میشد اما در ورژن لاراول 8 ویژگیهای بسیار خوبی به این حالت اضافه شد که نیازمندیهای قبلی ما را به سادگی برطرف میکند.
Model Factory Classes
در ورژن جدید لاراول حالت تعریف Model Factory دستخوش تغییر شده و در ورژن جدید شما Model Factoryها را باید به شکل کلاس تعریف کنید، استفاده از کلاسها قابلیتهای جدیدی به ما میدهد که نحوه کار با Model Factoryها را برای ما لذت بخشتر میکند
بهبود Rate Limiting
در لاراول جدید یعنی لاراول 8 شما کنترل بهتری بر روی محدود سازی تعداد درخواستها دارید یعنی به سادگی میتوانید گروههای مختلف ایجاد کنید و برای هر کدام محدودیت تعداد درخواست مشخص کنید. این ویژگی میتواند کمک زیادی به ایجاد کردن اپلیکیشنهای شما کند.
و ...
فریم ورک laravel – نسخه 9
این نسخه از لاراول هم شامل تغییراتی به شرح ذیل می باشد :
ویژگی Anonymous Stub Migrations
در نسخههای قدیمیتر لاراول داشتن چندین migration با یک کلاس ثابت باعث مشکلات میشد. البته این مشکل در نسخه ۸.۳۷ لاراول حل شد اما در نسخه ۹ این موضوع به صورت رسمی منتشر شده و بهینهسازیهای لازم برای جلوگیری از مشکلات Conflict رفع شده است. از لاراول ۸.۳۷ به بعد، قابلیت Anonymos Class Migration معرفی شد و حال دیگر خبری از مشکلات مربوط به چندین Migration با یک Class Name وجود ندارد.
دیزاین جدید route:list
دستور routes:list برای مدت بسیار زیادی است که در لاراول وجود دارد اما این دستور زمانی که routeهای پیچیده و بزرگی را ایجاد کنیم با مشکلاتی روبرو میشود. در نسخه ۹ لاراول تلاش کرده تا با استایل جدیدی سبک نوشتن routes:listها را تغییر داده و روش جدیدی را ارائه بدهد.
نسخه ۸ پی اچ پی حداقل نسخه در لاراول ۹
تنها نسخهای که در لاراول ۹ برای زبان برنامه نویسی PHP پشتیبانی میشود نسخه ۸ است - بنابراین نسخههای قدیمیتر از لاراول پشتیبانی بعمل نیاورده و به نظرم این موضوع بسیار کاربردی است. همچنین برای امر تستینگ لاراول ۹ از نسخه ۸ PHPUnit پشتیبانی کرده و نسخههای قبلی در ورژن ۹ پشتیبانی نمیشوند. نسخه ۸ PHP همراه با ویژگیهای بسیار کاربردی ارائه میشود که کامپایل JIT یا Just in Time یکی از آنهاست. بنابراین بهتر است هر چه سریعتر به این نسخه از PHP مهاجرت بکنید.
توابع string مربوط به php 8
از آنجایی که لاراول نسخه ۹ از PHP 8 پشتیبانی بعمل میآورد قابلیت جدید مربوط به String که در PHP8 بوجود آمد در لاراول جدید نیز پشتیبانی میشود. منظور از این توابع جدید مواردی مانند str_contains()، str_start_with() و str_end_with() است. حال میتوان پشتیبانی از این موارد را به صورت داخلی در کلاس \Illuminate\Support\Str مشاهده کرد.
رابط کاربری جدید برای Query Builder
تغییر از SwiftMailer به Symfony Mailer
در نسخههای قدیمی تر لاراول برای ارسال ایمیلها از Swift Mailer استفاده میشد که در حال حاضر دیگر از این کتابخانه پشتیبانی بعمل نیامده و به همین دلیل لاراول ۹ نیز با یک کتابخانه دیگر به نام Symfony Mailer همراه شده و از این به بعد باید اپلیکیشنهایتان را با این کتابخانه هماهنگ کنید.
بهبود Eloquent Accessors / Mutators
فایل سیستم جدید
در لاراول ۹ برای بحث فایل سیستم حال از ابزار جدیدی تحت عنوان Flysystem 3.x استفاده میشود. Flysystem از تمام تعاملات و ویژگیهای یک فایل سیستم که توسط فاساد Storage فراهم شده است پشتیبانی میکند.
ویژگی Anonymous Stub Migrations
در نسخههای قدیمیتر لاراول داشتن چندین migration با یک کلاس ثابت باعث مشکلات میشد. البته این مشکل در نسخه ۸.۳۷ لاراول حل شد اما در نسخه ۹ این موضوع به صورت رسمی منتشر شده و بهینهسازیهای لازم برای جلوگیری از مشکلات Conflict رفع شده است. از لاراول ۸.۳۷ به بعد، قابلیت Anonymos Class Migration معرفی شد و حال دیگر خبری از مشکلات مربوط به چندین Migration با یک Class Name وجود ندارد.
دیزاین جدید route:list
دستور routes:list برای مدت بسیار زیادی است که در لاراول وجود دارد اما این دستور زمانی که routeهای پیچیده و بزرگی را ایجاد کنیم با مشکلاتی روبرو میشود. در نسخه ۹ لاراول تلاش کرده تا با استایل جدیدی سبک نوشتن routes:listها را تغییر داده و روش جدیدی را ارائه بدهد.
نسخه ۸ پی اچ پی حداقل نسخه در لاراول ۹
تنها نسخهای که در لاراول ۹ برای زبان برنامه نویسی PHP پشتیبانی میشود نسخه ۸ است - بنابراین نسخههای قدیمیتر از لاراول پشتیبانی بعمل نیاورده و به نظرم این موضوع بسیار کاربردی است. همچنین برای امر تستینگ لاراول ۹ از نسخه ۸ PHPUnit پشتیبانی کرده و نسخههای قبلی در ورژن ۹ پشتیبانی نمیشوند. نسخه ۸ PHP همراه با ویژگیهای بسیار کاربردی ارائه میشود که کامپایل JIT یا Just in Time یکی از آنهاست. بنابراین بهتر است هر چه سریعتر به این نسخه از PHP مهاجرت بکنید.
توابع string مربوط به php 8
از آنجایی که لاراول نسخه ۹ از PHP 8 پشتیبانی بعمل میآورد قابلیت جدید مربوط به String که در PHP8 بوجود آمد در لاراول جدید نیز پشتیبانی میشود. منظور از این توابع جدید مواردی مانند str_contains()، str_start_with() و str_end_with() است. حال میتوان پشتیبانی از این موارد را به صورت داخلی در کلاس \Illuminate\Support\Str مشاهده کرد.
رابط کاربری جدید برای Query Builder
تغییر از SwiftMailer به Symfony Mailer
در نسخههای قدیمی تر لاراول برای ارسال ایمیلها از Swift Mailer استفاده میشد که در حال حاضر دیگر از این کتابخانه پشتیبانی بعمل نیامده و به همین دلیل لاراول ۹ نیز با یک کتابخانه دیگر به نام Symfony Mailer همراه شده و از این به بعد باید اپلیکیشنهایتان را با این کتابخانه هماهنگ کنید.
بهبود Eloquent Accessors / Mutators
فایل سیستم جدید
در لاراول ۹ برای بحث فایل سیستم حال از ابزار جدیدی تحت عنوان Flysystem 3.x استفاده میشود. Flysystem از تمام تعاملات و ویژگیهای یک فایل سیستم که توسط فاساد Storage فراهم شده است پشتیبانی میکند.
قابلیتها و مزایای فریم ورک لاراول چیست؟
فریم ورک Laravel مزایای بسیار زیادی دارد که با هر بروزرسانی شمار آنها افزایش مییابد. از Laravel تحت عنوان هایی مانند جادوگر دنیای وب هم یاد میشود. زیرا بسیاری بر این اعتقادند که کارهایی که این فریم ورک در فرآیند توسعه وب اپلیکیشن انجام میدهد، جادویی میباشند.
در لاراول با کمترین میزان کدنویسی و با وارد کردن دستوراتی کوتاه، کارهای بزرگی را میتوان انجام داد. از جمله میتوان به سیستم پیاده سازی فرمهای عضویت و ورود در Laravel اشاره کرد. این بخش در لاراول تنها با وارد کردن یک دستور پیاده سازی میشود. همچنین برای این که فریم ورک Laravel پاسخگوی نیازهای مختلف ما باشد، از Composer استفاده میکند که برای بروز رسانی لاراول نیز دقیقا از همین ابزار استفاده میشود. در ادامه به توضیح هر کدام از این مزایای Laravel میپردازیم.
تنها بعضی از مزایای لاراول :
در لاراول با کمترین میزان کدنویسی و با وارد کردن دستوراتی کوتاه، کارهای بزرگی را میتوان انجام داد. از جمله میتوان به سیستم پیاده سازی فرمهای عضویت و ورود در Laravel اشاره کرد. این بخش در لاراول تنها با وارد کردن یک دستور پیاده سازی میشود. همچنین برای این که فریم ورک Laravel پاسخگوی نیازهای مختلف ما باشد، از Composer استفاده میکند که برای بروز رسانی لاراول نیز دقیقا از همین ابزار استفاده میشود. در ادامه به توضیح هر کدام از این مزایای Laravel میپردازیم.
تنها بعضی از مزایای لاراول :
- استفاده از معماری MVC
- متن باز (Open Source) بودن
- آسانی در یادگیری
- افزایش سرعت توسعه پروژه
- امنیت بالا
- بروز رسانی آسان
- آسانتر کردن اعمالی همچون احراز هویت (Authentication) ، مسیریابی (Routing) و Cache کردن
- استفاده از Remote Component
- افزایش چشمگیر سرعت کد نویسی
- توسعه برنامه بدون به خطر افتادن قابلیتها و کدهای قبلی برنامه
- محدود کردن Eloquent با استفاده از دستوراتی ساده
- قابلیت اجرای آزمایشهای متعدد مانند Unit Testing با استفاده از دستوراتی ساده
- قابلیت دسترسی آسان به Database توسط Migration ها
- خط فرمان فوق العاده Artisan
- قابلیت ایجاد Packageهای مختلف
- استفاده از خصوصیت auto-loading
- استفاده از ابزار ORM
- استفاده کردن از موتور Template Blade
افزایش سرعت توسعه پروژه یکی از مزایای فریمورک لاراول
بی دلیل نیست که فریم ورک لاراول در بین برنامه نویسان زبان PHP محبوبیت زیادی پیدا کرده است. یکی از مهمترین دلایلی که برنامه نویسان، فریم ورک لاراول را انتخاب میکنند، کمک به افزایش سرعت توسعه پروژهها است.
فریم ورک لاراول به صورت Component Base است. یعنی کاربران به راحتی میتوانند کامپوننتهای دلخواهشان را به اپلیکیشن اضافه کرده و به روند توسعه آن سرعت بخشند. همچنین در صورتی که از منطق اجرایی Laravel استفاده شود، نوشتن وب اپلیکیشن بسیار ساده خواهد شد.
همچنین استفاده از قابلیت Auto Loading باعث میشود تمام نیازمندیها برای Component ها، Classها و غیره به صورت اتوماتیک بارگذاری شود. ویژگی دیگر لاراول، استفاده از Migration ها برای ایجاد دیتابیس است که باعث سهولت انتقال و مدیریت اطلاعات میشود. لاراول دارای سیستمهای امنیتی متعددی است که باعث جلوگیری از انواع حملات، مدیریت ذخیره سازی کوئریهای دیتابیس و … میشود. اینها برخی از مهمترین مواردی هستند که در لاراول باعث کاهش مشکلات و افزایش سرعت توسعه اپلیکیشنها میشوند.
فریم ورک لاراول به صورت Component Base است. یعنی کاربران به راحتی میتوانند کامپوننتهای دلخواهشان را به اپلیکیشن اضافه کرده و به روند توسعه آن سرعت بخشند. همچنین در صورتی که از منطق اجرایی Laravel استفاده شود، نوشتن وب اپلیکیشن بسیار ساده خواهد شد.
همچنین استفاده از قابلیت Auto Loading باعث میشود تمام نیازمندیها برای Component ها، Classها و غیره به صورت اتوماتیک بارگذاری شود. ویژگی دیگر لاراول، استفاده از Migration ها برای ایجاد دیتابیس است که باعث سهولت انتقال و مدیریت اطلاعات میشود. لاراول دارای سیستمهای امنیتی متعددی است که باعث جلوگیری از انواع حملات، مدیریت ذخیره سازی کوئریهای دیتابیس و … میشود. اینها برخی از مهمترین مواردی هستند که در لاراول باعث کاهش مشکلات و افزایش سرعت توسعه اپلیکیشنها میشوند.
پشتیبانی از پایگاه دادههای مختلف در لاراول یکی از مزایای لاراول
در حال حاضر لاراول از پایگاههای داده MySQL ،SQLServer ،PostgreSQL و SQLLite پشتیبانی میکند.
اعتبار سنجی با Validation در لاراول
گاهی نوشتن دستی همه کدهای اعتبارسنجی بسیار زمانبر و کسل کننده میشود. اما Laravel این مشکل را حل کرده است. لاراول دارای یک سیستم اعتبارسنجی قوی است. کافی است مشخص کنید هر فیلد از فرم باید از چه نظر اعتبار سنجی شود. یعنی قوانین اعتبار سنجی را مشخص کنید. بعد از آن همه اعتبارسنجیها بهصورت خودکار انجام میشود.
مزیت قابلیت Sync شدن با ایمیلها در لاراول
تصور برنامهای امروزی بدون قابلیت فرستادن یا دریافت Email ممکن نیست. لاراول با تمام سرویسهای دریافت و ارسال Email، به آسانی Sync میشود.
زبان برنامه نویسی لاراول
لاراول بهغیر از توابع SMTP و PHP mail، از بسیاری از سرویسهای ایمیل رسانی دیگر مانند Mailgun Mandrill ، SparkPost ، Amazon SES ، SendMail و غیره پشتیبانی میکند. همچنین میتوانید با استفاده از Email ،Nexmoها را از طریق Slack یا SMS ارسال کنید.
نصب و سفارشی سازی بسیار آسان laravel
قطعا برای کار کردن با یک فریم ورک، نحوهی نصب و سفارشیسازی آن در اولویت بالایی قرار ندارد و بسیاری از Framework ها نحوهی نصب دشوار اما کارایی و مزیتهای زیادی دارند. به همین علت گاهی اوقات این فکر به سرمان میآید که کاش نحوهی نصب فریم ورکی با مزیتهای بسیار زیاد حداقل کمی آسانتر بود. Laravel همان فریم ورکی است که در کنار مزیتهای فراوان، نحوهی نصب و سفارشی سازی فوقالعاده آسانی دارد.
جامعه کاربری بزرگ برنامه نویسان Laravel از مزایای لاراول
در طول این مقاله بارها گفتیم که لاراول محبوبترین فریمورک PHP است. اما این چگونه میتواند یک مزیت محسوب شود؟ باید بگوییم که محبوبیت بالا برای یک ابزار یعنی استفاده بیشتر از آن و استفاده بیشتر یعنی جامعه ای بزرگتر (Community) از کاربران که میتوانند به شما در حل مشکلاتتان با آن ابزار کمک کنند! هر مشکلی که در استفاده از لاراول داشته باشید فرقی نمیکند! با مطرح کردن آن در یکی از صدها وب سایت و انجمن لاراول میتوانید در عرض چند دقیقه به جوابتان برسید. یکی از معتبرترین وبسایتها و انجمنهای لاراول وبسایت Laracasts است.
کاهش حجم کد نویسی با کمک لاراول
در Laravel تمام کوئریهای شما میتوانند در Modelهای جداگانه ای ذخیره شوند که بعدها از آنها استفاده کنید.
این ویژگی فوق العاده باعث شده است که در برنامه نویسی سایت با استفاده از فریم ورک لاراول حجم بسیار زیادی از کدهای شما کاهش یابد و شما بتوانید بهتر و راحتتر با برنامهی خود تعامل داشته باشید و آن را اصلاح کنید.
احراز هویت یا Authentication در لاراول
این ویژگی فوق العاده باعث شده است که در برنامه نویسی سایت با استفاده از فریم ورک لاراول حجم بسیار زیادی از کدهای شما کاهش یابد و شما بتوانید بهتر و راحتتر با برنامهی خود تعامل داشته باشید و آن را اصلاح کنید.
احراز هویت یا Authentication در لاراول
احراز هویت در Laravel
فریم ورک لاراول دارای یک سیستم احراز هویت قدرتمند به همراه کدهای آمادهی پیکر بندی آن است. کافی است پس از نصب لاراول Authentication آن را فعال کرده و از سیستم ثبت نام (Sign Up) ،ورود (Sign In) و خروج (Log Out) آن لذت ببرید.
سیستم امنیتی بسیار بالا و پیشرفتهی لاراول
امنیت در لاراول
برای آن که مطمئن شویم کسی نمیتواند به وب سایت ما ریکوئستهای Fake بفرستد و از این طریق از آن سوء استفاده کند، لاراول از توکنهای CSRF استفاده میکند. چرا که در غیر این صورت هکرها میتوانند از طریق این ریکوئستهای Fake به وب سایت ما نفوذ کنند. به این گونه حملات CSRF یا Cross Site Request Forgery گفته میشود.
به همین دلیل در هر بار ارسال Request با Ajax در لاراول یک Token بهنام CSRF Token ایجاد شده و به همراه Request ارسال میشود و وقتی Request دریافت شود، لاراول Token موجود در Request را با Token ذخیره شده در Session کاربر مقایسه میکند. اگر این دو Token با هم برابر نباشند، Request نامعتبر (Invalid Request) محسوب میشود.
تنها وظیفهی شما در این فرآیند این است که در هنگام ایجاد فرمهای HTML یک فیلد حاوی CSRF Token را در آن قرار دهید. توجه داشته باشید که CSRF Token توسط خود لاراول تولید میشود و کافی است که از آن در کد استفاده کنید.
پس نتیجه میگیریم که یکی دیگر از مزیتهای مهم و بزرگ فریم ورک لاراول، همین سیستم امنیتی بسیار بالا و پیشرفته آن است که از وب سایت شما در مقابل injectionها و حملات XSS و CSRF محافظت میکند و کسی که در حال برنامه نویسی با استفاده از فریم ورک لاراول میباشد دیگر نیازی نیست که نگران این موارد باشد.
به همین دلیل در هر بار ارسال Request با Ajax در لاراول یک Token بهنام CSRF Token ایجاد شده و به همراه Request ارسال میشود و وقتی Request دریافت شود، لاراول Token موجود در Request را با Token ذخیره شده در Session کاربر مقایسه میکند. اگر این دو Token با هم برابر نباشند، Request نامعتبر (Invalid Request) محسوب میشود.
تنها وظیفهی شما در این فرآیند این است که در هنگام ایجاد فرمهای HTML یک فیلد حاوی CSRF Token را در آن قرار دهید. توجه داشته باشید که CSRF Token توسط خود لاراول تولید میشود و کافی است که از آن در کد استفاده کنید.
پس نتیجه میگیریم که یکی دیگر از مزیتهای مهم و بزرگ فریم ورک لاراول، همین سیستم امنیتی بسیار بالا و پیشرفته آن است که از وب سایت شما در مقابل injectionها و حملات XSS و CSRF محافظت میکند و کسی که در حال برنامه نویسی با استفاده از فریم ورک لاراول میباشد دیگر نیازی نیست که نگران این موارد باشد.
پشتیبانی از معماری MVC در laravel
دلیل دیگری که لاراول را به بهترین فریم ورک زبان PHP تبدیل کرده است، پشتیبانی از معماری MVC مانند فریم ورک Symfony است. معماری MVC یا Model ،View ،Controller در بهبود عملکرد برنامه نویسی فوقالعاده کمک میکند و باعث میشود برنامهی ما علاوه بر عملکرد بهتر، بسیار منظمتر باشد.
استفاده از Blade برای View در لاراول
آموزش لاراول
در لاراول تمام Viewها در قالب Blade ساخته میشوند که این قالب باعث میشود بهراحتی کدهای HTML ،CSS ،PHP ،Laravel و … را همزمان استفاده کنیم.
خاصیت Unit testing فریم ورک لاراول چیست؟
یادگیری لاراول - Unit Testing
مزیت دیگر استفاده از فریم ورک لاراول این است که با استفاده از خاصیت Unit Testing حجم بسیار بالایی از تستهای مختلف را در مدت زمان بسیار کوتاهی انجام دهید تا بتوانید خطاهای احتمالی که ممکن است برای برنامهی شما پیش آمده باشد را شناسایی کنید و در صدد حل کردن آنها برآیید.
ابزار ORM در فریم ورک لاراول چیست؟
یکی از بهترین ابزارهایی که در فریم ورک لاراول استفاده شده است و میتوان از آن به عنوان یکی از مهمترین مزیتهای استفاده از این فریم ورک یاد کرد این است که، این فریم ورک از ابزار ORM برای برقرار کردن پلی ارتباطی بین بانکهای اطلاعاتی (Database) و اجرای Query استفاده میکند، این ویژگی به شما امکانات بسیار زیادی که یکی از مهمترین آنها ایجاد برخی از محدودیتها بین اشیا ساخته شده توسط شما و جدول اطلاعاتی یا Database میباشد را میدهد. بهطور مثال فرض کنید یک جدول در Database بهنام Posts دارید و برای ارتباط با آن, یک Model بهنام Posts ایجاد کردهاید. حال اگر بخواهید تمام دادههای جدول Posts را بدون استفاده از ORM و Eloquent دریافت کنید، مجبورید یک Query بنویسید. اما با استفاده از Eloquent، تنها کافیست از دستور ()Posts::all استفاده کنید.
خاصیت auto-loading در فریم ورک لاراول چیست؟
یکی دیگر از مزیتهای استفاده از این فریم ورک، بهرهگیری از یکی از خاصیتهای داخلی لاراول به نام auto-loading برای classها میباشد که میتوانید با استفاده از این خاصیت تمامی classها و component های خود را به صورت خودکار در صورت نیاز لود کنید و از آنها استفاده کنید. این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد. چرا که با این روش دیگر نیازی نیست که به صورت دستی کتابخانهها و فایلهای خود را include کنید.
ویژگی Migration در فریمورک laravel چیست؟
یکی از بزرگترین مزیتهای این فریم ورک، این است که از ویژگی Migration استفاده میکند. این ویژگی در واقع یک سیستم کنترل ورژن بانک اطلاعاتی یا Database میباشد که باعث میشود تا به راحتی با هاست خود در ارتباط باشید و بتوانید به راحتی با آن تعامل کنید.
همانطور که گفتیم، این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد چرا که کار کردن با Database همواره دارای سختیهای بسیار زیادی بوده است و شما به وسیله این ویژگی میتوانید به راحتی با Database خود ارتباط برقرار کنید.
همانطور که گفتیم، این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد چرا که کار کردن با Database همواره دارای سختیهای بسیار زیادی بوده است و شما به وسیله این ویژگی میتوانید به راحتی با Database خود ارتباط برقرار کنید.
خط فرمان Artisan در فریم ورک لاراول چیست؟
فریم ورک لاراول دارای یک خط فرمان قدرمند است که با استفاده از آن میتوانید سرعت کدنویسی را به میزان قابل ملاحظه ای بالا ببرید. این خط فرمان آرتیسن (Artisan) نام دارد. آرتیسن میتواند به طور اتوماتیک برای شما Controller، Migration به همراه توابع اصلی، Model و… بسازد. همچنین Artisan میتواند یک سرور مجازی برای تست لاراول راه اندازی کند یا دیتابیسهای شما را با استفاده از Migration ها تغییر دهد.
کتابخانههای Object-Oriented یا شی گرای Laravel
همانطور که میدانید، Laravel بهترین فریم ورک زبان PHP است که تعداد بسیار زیادی کتابخانه یا Libraryهای Object-Oriented را دارا میباشد که این Libraryها در فریم ورکهای دیگر PHP وجود ندارند. یکی از این Libraryها که بهصورت پیشفرض بر روی لاراول نصب میباشد، Authentication Library است. این Library امکانات زیادی مانند چک کردن کاربران hash ،Online کردن رمز عبور و تمام فیلدهایی که میخواهیم، جلوگیری از حملات CSRF و امکانات پیشرفته دیگری را دارا میباشد.
Middleware در فریم ورک لاراول چیست؟
لاراول برای پردازش ریکوئستها از میان افزار یا Middleware استفاده میکند. میتوان گفت که Middleware پلی میان Request و برنامه است. تمام Requestها در لاراول مجبورند از این پل عبور کنند. مثلا لاراول برای تشخیص کاربرانی که احراز هویت نکرده اند از یک میدلور به نام Auth استفاده میکند. تمام صفحاتی که از میدلور Auth استفاده کنند، در صورت باز شدن توسط کاربران احراز هویت نشده به صفحه ورود یا لاگین منتقل میشوند. البته نمیتوان این ابزار را تنها یک ابزار امنیتی دانست. چرا که میتواند موارد کاربرد بسیاری داشته باشد. نمونههایی از این کاربردها عبارتند از:
- پیاده سازی سایتهای چند زبانه
- پیاده سازی حالت در دست تعمیر یا بهطور مثال میخواهیم صفحهای از سایت را تغییر دهم و فعلا میخواهیم آن صفحه یک متن هشدار که سایت در حال بروزرسانی است را برای کاربران نمايش دهد
- شناسایی ریکوئست هایی که از طرف رباتها میآیند و جلوگیری از حملات DDOS
- Log کردن و…
چرا لاراول به عنوان بهترین فریمورک PHP شناخته میشود؟
هر روزه برنامه نویسان بیشتری به فریم ورک Laravel علاقهمند میشوند و تعداد استفاده کنندگان این فریم ورک افزایش مییابد. با توجه به پیشرفت چشمگیر و روند رو به رشدی که این فریم ورک دارد، انتظار میرود آیندهی بسیار خوبی در انتظارش باشد. مزایا و خصوصیات بسیار خوب این فریم ورک و برتری هایی که نسبت به سایر فریم ورکها دارد، آن را به یک گزینهی بسیار خوب برای برنامه نویسان تبدیل کرده است. اگرچه استفاده از فریم ورکها کاملاً سلیقهای است و نمیتوان یکی از آنها را برتر و قویتر از دیگر فریم ورکها دانست، اما بدون شک فریم ورک لاراول در صدر محبوبترین و بهترین فریم ورکهای PHP خواهد بود.
نظرات خودتان را برای ما و دیگران به اشتراک بگذارید.
محمد خرم
ممنون از پست خوبی که گذاشتین. خیلی کامل و جامع بود