زبان برنامه نویسی PHP یکی از برترین و محبوبترین زبانهای برنامه نویسی در حوزه طراحی وب است. این زبان برنامه نویسی فریم ورک های بسیار زیادی دارد که لاراول یکی از آنها است. عاملی که فریم ورک لاراول را از سایر فریم ورکهای زبان PHP متمایز میسازد، ویژگیهای زیادی است که در ادامه به آن میپردازیم.
فریم ورک چیست؟
شاید ابتدا برای شما این سوال پیش بیاید که فریم ورک چیست؟ فریم ورک یا Framework در لغت به معنی چارچوب است.
فریم ورک برنامه نویسی مجموعه ای از کتابخانهها، استانداردها، دیزاین پترنها و قوانین کدنویسی است که در بستر یک چارچوب نرم افزاری در اختیار توسعه دهندگان و برنامه نویسان قرار میگیرد. برای انواع زبانهای برنامه نویسی مختلف، فریم ورکهای متعددی توسعه داده شده است.
بنابراین برنامه نویسان و توسعه دهندگان از فریم ورکها بهعنوان بستری استاندارد برای طراحی و توسعه اپلیکیشنهای خود استفاده میکنند. در فریم ورکهای بسیاری، از کدها و دستورات بهصورت از پیش نوشته شده مورد استفاده قرار میگیرند. این توابع و دستورات توسط توسعه دهندگانی با تجربه و متخصص آماده شده اند و برنامه نویسان با استفاده از آنها میتوانند اپلیکیشنهای خود را با سرعت، امنیت و کیفیت بالاتری توسعه دهند.
فریم ورک لاراول چیست ؟
زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید.این فریم ورک توانسته است در زمان کوتاهی به اولین گزینهی توسعه دهندگان برای توسعه برنامه های پیچیده تحت وب تبدیل شود.
لاراول فریم ورکی مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. این فریم ورک امکانات هوشمندی در اختیار برنامه نویسان قرار میدهد و برنامه نویسی را برای آنها لذت بخشتر میکند.
این فریم ورک در بین سایر فریم ورکهای PHP از امنیت و سرعت توسعهی بیشتری برخوردار است و از طریق آن شما قادر خواهید بود بدون اینکه تغییری در کدهای اصلی ایجاد کنید، عملکرد بسیاری از بخشها را تغییر دهید. لاراول کتابخانههای بسیار متنوعی دارد و از اغلب کتابخانههای فریم ورک سیمفونی نیز استفاده میکند. همچنین این فریم ورک سرویسهای مختلفی را برای برنامه نویسان ارائه میدهد. به عنوان مثال سرویس هایی همچون تأیید هویت، دسترسیهای کاربران، کنسول Artisan، پرداخت و صورتحساب، کش (Cache) و … که تنها بخش کوچکی از سرویس هایی است که این فریم ورک در اختیار برنامه نویسان قرار میدهد.
تاریخچه فریم ورک لاراول چیست ؟
حال که فهمیدیم فریم ورک لاراول چیست، در این بخش قصد داریم تاریخچه آن را مورد بررسی قرار دهیم. تیلور اوتوِل (Taylor Otwell) خالق فریم ورک لاراول است. او با هدف ارائه یک راه حل پیشرفتهتر نسبت به فریم ورک CodeIgniter، لاراول را برای توسعه وب اپلیکیشنها ارائه کرد.
نسخه ۱
اولین نسخه این فریم ورک در سال ۲۰۱۱ در اختیار توسعه دهندگان قرار گرفت. سپس یک ماه بعد، نسخه کامل شده و پایدار لاراول منتشر گردید. نسخه لاراول ۱ شامل مکانسیمهای Model ،View ،Session و Navigation بود.
نسخه ۲
لاراول ۲ در همان سال ۲۰۱۱ همراه با بهینه سازیهای متعددی منتشر شد. اصلیترین ویژگی که در این نسخه افزوده شد، پشتیبانی از Controllerها بود. لاراول با ارائه این نسخه توانست به صورت کامل از معماری MVC پشتیبانی کند و به عنوان یک فریم ورک شناخته شود. دومین ویژگی که در این نسخه اضافه شد، موتور رندر قالب blade بود. این موتور رندر با هدف افزایش سرعت توسعه قالبها و کاهش میزان کدنویسی ارائه شد.
نسخه ۳
سومین نسخه لاراول در سال ۲۰۱۲ منتشر شد. از ویژگیهای مهمی که به این فریم ورک اضافه شده بود، استفاده از خط فرمان CLI بود که با نام artisan شناخته میشد.
نسخه ۴
پس از موفقیت هایی که این فریم ورک در نسخه سوم به دست آورد، در سال ۲۰۱۳ چهارمین نسخه آن بر پایه کدهای Illuminate منتشر شد. این نسخه از لاراول به صورت کامل مورد بازنویسی قرار گرفت و با پشتیبانی از سیستم Composer گام بلندی در جهت پیشرفت و سبقت از سایر رقیبان خود برداشت. به دلیل استفاده از این ویژگی امکان استفاده از پکیجها و کتابخانههای زیادی که توسط سایر برنامه نویسان PHP توسعه داده شده بود، برای کاربران امکان پذیر شد. همچنین امکاناتی مانند ارسال ایمیل به روشهای مختلف و پشتیبانی از حذف شدن با تأخیر رکوردهای بانک اطلاعاتی (Soft Deletion) از دیگر امکانات نسخه ۴ لاراول بود.
نسخه ۵
در سال ۲۰۱۵ پس از دو سال از ارائه چهارمین نسخه از این فریم ورک، نسخه ۵ لاراول منتشر شد. این نسخه از لاراول از ویژگیهای بسیار متعددی پشتیبانی میکرد. پشتیبانی از سیستم برنامه ریزی اجرای وظایف با استفاده از پکیج Scheduler، بهینه سازی assets، ساده شدن عملیات احراز هویت، همچنین ارائه ساختار درختی برای توسعه اپلیکیشنها، بخشی از قابلیتهای اضافه شده در لاراول ۵ بود. این نسخه از لاراول به صورت مداوم مورد به روزرسانی قرار گرفت و در هر یک از این به روزرسانیها امکانات و ویژگیهای زیادی به این فریم ورک اضافه شد.
نسخه ۶
پس از مدتی لاراول نسخه ۶ خود را منتشر کرد، که در این نسخه بسیاری از نقصهای نسخه ۵ را برطرف کرد و ویژگیهای جدیدی که قطعا مورد انتظار طرفدارانش بود را فراهم ساخت، یکی از این ویژگیها، استفاده از Laravel Vapor بود.
نسخه ۷
آخرین نسخه لاراول در حال حاضر نسخه ۷ میباشد که نسبت به نسخه قبلی آن، تغییرات و بهبودهای چشمگیری پیدا کرده است.
توسعه دهندگان این فریم ورک همواره در تلاش اند تا استفاده از این فریم ورک را برای کابران ساده و لذت بخشتر کنند. بنابراین آنها بیش از پیش به توسعه لاراول میپردازند تا سیر تکاملی و رو به پیشرفت آن را حفظ کنند.
قابلیتها و مزایای فریم ورک لاراول چیست ؟
فریم ورک لاراول مزایای بسیار زیادی دارد که با هر به روزرسانی، شمار آنها افزایش مییابد. از لاراول، تحت عنوان هایی مانند جادوگر دنیای وب هم یاد میشود زیرا بسیاری بر این اعتقادند که کارهایی که این فریم ورک در فرآیند توسعه وب اپلیکیشن انجام میدهد، جادویی میباشند.
در لاراول با کمترین میزان کدنویسی و با وارد کردن دستوراتی کوتاه، کارهای بزرگی را میتوان انجام داد. از جمله میتوان به سیستم پیاده سازی فرمهای عضویت و ورود در لاراول اشاره کرد. این بخش در لاراول تنها با وارد کردن یک دستور پیاده سازی میشود.
برخی از مزایای لاراول:
افزایش سرعت توسعه پروژه
بی دلیل نیست که فریم ورک لاراول در بین برنامه نویسان زبان PHP محبوبیت زیادی پیدا کرده است. یکی از مهمترین دلایلی که برنامه نویسان، فریم ورک لاراول را انتخاب میکنند، کمک به افزایش سرعت توسعه پروژهها است.
فریم ورک لاراول به صورت Component Base است. یعنی کاربران به راحتی میتوانند کامپوننتهای دلخواهشان را به اپلیکیشن اضافه کرده و به روند توسعه آن سرعت بخشند. همچنین در صورتی که از منطق اجرایی لاراول استفاده شود، نوشتن وب اپلیکیشن بسیار ساده خواهد شد.
همچنین استفاده از قابلیت Auto Loading باعث میشود تمام نیازمندیها برای Component ها، Classها و غیره به صورت اتوماتیک بارگذاری شود. ویژگی دیگر لاراول، استفاده از Migration ها برای ایجاد دیتابیس است که باعث سهولت انتقال و مدیریت اطلاعات میشود. لاراول دارای سیستمهای امنیتی متعددی است که باعث جلوگیری از انواع حملات، مدیریت ذخیره سازی کوئریهای دیتابیس و … میشود. اینها برخی از مهمترین مواردی هستند که در لاراول باعث کاهش مشکلات و افزایش سرعت توسعه اپلیکیشنها میشوند.
ابزار ORM در فریم ورک لاراول چیست ؟
یکی از بهترین ابزارهایی که در فریم ورک لاراول استفاده شده است و میتوان از آن به عنوان یکی از مهمترین مزیتهای استفاده از این فریم ورک یاد کرد این است که، این فریم ورک از ابزار ORM برای برقرار کردن پلی ارتباطی بین بانکهای اطلاعاتی (Database) و اجرای Query استفاده میکند، این ویژگی به شما امکانات بسیار زیادی که یکی از مهمترین آنها ایجاد برخی از محدودیتها بین اشیا ساخته شده توسط شما و جدول اطلاعاتی یا Database میباشد را میدهد. بهطور مثال فرض کنید یک جدول در Database بهنام Posts دارید و برای ارتباط با آن, یک Model بهنام Posts ایجاد کردهاید. حال اگر بخواهید تمام دادههای جدول Posts را بدون استفاده از ORM و Eloquent دریافت کنید، مجبورید یک Query بنویسید. اما با استفاده از Eloquent، تنها کافیست از دستور ()Posts::all استفاده کنید.
خاصیت auto-loading در فریم ورک لاراول چیست ؟
یکی دیگر از مزیتهای استفاده از این فریم ورک، بهرهگیری از یکی از خاصیتهای داخلی لاراول به نام auto-loading برای classها میباشد که میتوانید با استفاده از این خاصیت تمامی classها و component های خود را به صورت خودکار در صورت نیاز لود کنید و از آنها استفاده کنید. این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد. چرا که با این روش دیگر نیازی نیست که به صورت دستی کتابخانهها و فایلهای خود را include کنید.
قابلیت Sync شدن با Email ها
تصور برنامهای امروزی بدون قابلیت فرستادن یا دریافت Email ممکن نیست. لاراول با تمام سرویسهای دریافت و ارسال Email، به آسانی Sync میشود.
ویژگی Migration در فریم ورک لاراول چیست ؟
یکی از بزرگترین مزیتهای این فریم ورک، این است که از ویژگی Migration استفاده میکند. این ویژگی در واقع یک سیستم کنترل ورژن بانک اطلاعاتی یا Database میباشد که باعث میشود تا به راحتی با هاست خود در ارتباط باشید و بتوانید به راحتی با آن تعامل کنید. همانطور که گفتیم، این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد چرا که کار کردن با Database همواره دارای سختیهای بسیار زیادی بوده است و شما به وسیله این ویژگی میتوانید به راحتی با Database خود ارتباط برقرار کنید.
پشتیبانی از Databaseهای مختلف
در حال حاضر لاراول از پایگاههای داده MySQL ،SQLServer ،PostgreSQL و SQLLite پشتیبانی میکند.
خط فرمان Artisan در فریم ورک لاراول چیست ؟
فریم ورک لاراول دارای یک خط فرمان قدرمند است که با استفاده از آن میتوانید سرعت کدنویسی را به میزان قابل ملاحظه ای بالا ببرید. این خط فرمان آرتیسن (Artisan) نام دارد. آرتیسن میتواند به طور اتوماتیک برای شما Controller، Migration به همراه توابع اصلی، Model و… بسازد. همچنین Artisan میتواند یک سرور مجازی برای تست لاراول راه اندازی کند یا دیتابیسهای شما را با استفاده از Migration ها تغییر دهد.
Libraryهای Object-Oriented یا شی گرا
همانطورکه میدانید، لاراول بهترین فریم ورک زبان PHP است که تعداد بسیار زیادی کتابخانه یا Libraryهای Object-Oriented را دارا میباشد که این Libraryها در فریم ورکهای دیگر PHP وجود ندارند. یکی از این Libraryها که بهصورت پیشفرض بر روی لاراول نصب میباشد، Authentication Library است. این Library امکانات زیادی مانند چک کردن کاربران hash ،Online کردن رمز عبور و تمام فیلدهایی که میخواهیم، جلوگیری از حملات CSRF و امکانات پیشرفته دیگری را دارا میباشد.
پشتیبانی از معماری MVC
دلیل دیگری که لاراول را به بهترین فریم ورک زبان PHP تبدیل کرده است، پشتیبانی از معماری MVC مانند فریم ورک Symfony است. معماری MVC یا Model ،View ،Controller در بهبود عملکرد برنامه نویسی فوقالعاده کمک میکند و باعث میشود برنامهی ما علاوه بر عملکرد بهتر، بسیار منظمتر باشد.
استفاده از Blade برای View
در لاراول تمام Viewها در قالب Blade ساخته میشوند که این قالب باعث میشود بهراحتی کدهای HTML ،CSS ،PHP ،Laravel و … را همزمان استفاده کنیم.
خاصیت Unit testing فریم ورک لاراول چیست ؟
مزیت دیگر استفاده از فریم ورک لاراول این است که با استفاده از خاصیت Unit Testing حجم بسیار بالایی از تستهای مختلف را در مدت زمان بسیار کوتاهی انجام دهید تا بتوانید خطاهای احتمالی که ممکن است برای برنامهی شما پیش آمده باشد را شناسایی کنید و در صدد حل کردن آنها برآیید.
نصب و سفارشی سازی بسیار آسان
قطعا برای کار کردن با یک فریم ورک، نحوهی نصب و سفارشیسازی آن در اولویت بالایی قرار ندارد و بسیاری از Framework ها نحوهی نصب دشوار اما کارایی و مزیتهای زیادی دارند. به همین علت گاهی اوقات این فکر به سرمان میآید که کاش نحوهی نصب فریم ورکی با مزیتهای بسیار زیاد حداقل کمی آسانتر بود. لاراول همان فریم ورکی است که در کنار مزیتهای فراوان، نحوهی نصب و سفارشی سازی فوقالعاده آسانی دارد.
جامعه کاربری بزرگ
در طول این مقاله بارها گفتیم که لاراول محبوبترین فریمورک PHP است. اما این چگونه میتواند یک مزیت محسوب شود؟ باید بگوییم که محبوبیت بالا برای یک ابزار یعنی استفاده بیشتر از آن و استفاده بیشتر یعنی جامعه ای بزرگتر (Community) از کاربران که میتوانند به شما در حل مشکلاتتان با آن ابزار کمک کنند! هر مشکلی که در استفاده از لاراول داشته باشید فرقی نمیکند! با مطرح کردن آن در یکی از صدها وب سایت و انجمن لاراول میتوانید در عرض چند دقیقه به جوابتان برسید.
احراز هویت یا Authentication
فریم ورک لاراول دارای یک سیستم احراز هویت قدرتمند به همراه کدهای آمادهی پیکر بندی آن است. کافی است پس از نصب لاراول Authentication آن را فعال کرده و از سیستم ثبت نام، ورود، خروج آن لذت ببرید.
سیستم امنیتی بسیار بالا و پیشرفته
برای آن که مطمئن شویم کسی نمیتواند به وب سایت ما ریکوئستهای 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 محافظت میکند و کسی که در حال برنامه نویسی با استفاده از فریم ورک لاراول میباشد دیگر نیازی نیست که نگران این موارد باشد.
اعتبار سنجی با Validation
گاهی نوشتن دستی همه کدهای اعتبارسنجی بسیار زمانبر و کسل کننده میشود. اما لاراول این مشکل را حل کرده است. لاراول دارای یک سیستم اعتبارسنجی قوی است. کافی است مشخص کنید هر فیلد از فرم باید از چه نظر اعتبار سنجی شود. یعنی قوانین اعتبار سنجی را مشخص کنید. بعد از آن همه اعتبارسنجیها بهصورت خودکار انجام میشود.
Middleware در فریم ورک لاراول چیست ؟
لاراول برای پردازش ریکوئستها از میان افزار یا Middleware استفاده میکند. میتوان گفت که Middleware پلی میان Request و برنامه است. تمام Requestها در لاراول مجبورند از این پل عبور کنند. مثلا لاراول برای تشخیص کاربرانی که احراز هویت نکرده اند از یک میدلور به نام Auth استفاده میکند. تمام صفحاتی که از میدلور Auth استفاده کنند، در صورت باز شدن توسط کاربران احراز هویت نشده به صفحه ورود یا لاگین منتقل میشوند. البته نمیتوان این ابزار را تنها یک ابزار امنیتی دانست. چرا که میتواند موارد کاربرد بسیاری داشته باشد. نمونههایی از این کاربردها عبارت اند از:
- پیاده سازی سایتهای چند زبانه
- پیاده سازی حالت در دست تعمیر یا بهطور مثال میخواهیم صفحهای از سایت را تغییر دهم و فعلا میخواهیم آن صفحه یک متن هشدار که سایت در حال به روزرسانی است را برای کاربران نمايش دهد
- شناسایی ریکوئست هایی که از طرف رباتها میآیند و جلوگیری از حملات DDOS
- Log کردن و…
کاهش حجم کد نویسی
درلاراول تمام Queryهای شما میتوانند در Modelهای جداگانه ای ذخیره شوند که بعدها از آنها استفاده کنید.
این ویژگی فوق العاده باعث شده است که در برنامه نویسی سایت با استفاده از فریم ورک لاراول حجم بسیار زیادی از کدهای شما کاهش یابد و شما بتوانید بهتر و راحتتر با برنامهی خود تعامل داشته باشید و آن را اصلاح کنید.
جمع بندی
هر روزه برنامه نویسان بیشتری به فریم ورک لاراول علاقهمند میشوند و تعداد استفاده کنندگان این فریم ورک افزایش مییابد. با توجه به پیشرفت چشمگیر و روند رو به رشدی که این فریم ورک دارد، انتظار میرود آیندهی بسیار خوبی داشته باشد. مزایا و خصوصیات بسیار خوب این فریم ورک و برتری هایی که نسبت به سایر فریم ورکها دارد، آن را به یک گزینهی بسیار خوب برای برنامه نویسان تبدیل کرده است. اگرچه استفاده از فریم ورکها کاملاً سلیقهای است و نمیتوان یکی از آنها را برتر و قویتر از دیگر فریم ورکها دانست، اما بدون شک فریم ورک لاراول در صدر محبوبترین و بهترین فریم ورکهای PHP خواهد بود.