فریم ورک laravel
لاراول چیست ، زمانی که در مورد فریم ورکهای توسعه وب اپلیکیشن صحبت میشود، همیشه نام لاراول به میان میآید. از لاراول میتوان به عنوان محبوبترین فریم ورک زبان برنامه نویسی PHP یاد کرد. این فریم ورک توانسته است در زمانی کوتاه، به اولین گزینهی توسعه دهندگان برای توسعه برنامههای پیچیده تحت وب تبدیل شود.
لاراول فریم ورکی مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. این فریم ورک امکانات هوشمندی در اختیار برنامه نویسان قرار میدهد و برنامه نویسی را برای آنها لذت بخشتر میکند.
این فریم ورک در بین سایر فریم ورکهای PHP از امنیت و سرعت توسعهی بیشتری برخوردار است و از طریق آن شما قادر خواهید بود بدون اینکه تغییری در کدهای اصلی ایجاد کنید، عملکرد بسیاری از بخشها را تغییر دهید. لاراول کتابخانههای بسیار متنوعی دارد و از اغلب کتابخانههای فریم ورک سیمفونی نیز استفاده میکند. همچنین این فریم ورک سرویسهای مختلفی را برای برنامه نویسان ارائه میدهد. به عنوان مثال سرویس هایی همچون تأیید هویت، دسترسیهای کاربران، کنسول Artisan، پرداخت و صورتحساب، کش (Cache) و … که تنها بخش کوچکی از سرویس هایی است که این فریم ورک در اختیار برنامه نویسان قرار میدهد.
تاریخچه فریم ورک laravel چیست ؟
در این بخش قصد داریم تاریخچه آن را مورد بررسی قرار دهیم. تیلور اوتوِل (Taylor Otwell) خالق فریم ورک Laravel است. او با هدف ارائه یک راه حل پیشرفتهتر نسبت به فریم ورک CodeIgniter، لاراول را برای توسعه وب اپلیکیشنها ارائه کرد.
نسخه 1
اولین نسخه این فریم ورک در سال ۲۰۱۱ در اختیار توسعه دهندگان قرار گرفت. سپس یک ماه بعد، نسخه کامل شده و پایدار لاراول منتشر گردید. نسخه لاراول ۱ شامل مکانسیمهای Model ،View ،Session و Navigation بود ولی نبود Controller در آن باعث شد تا این فریم ورک از معماری MVC به صورت واقعی پشتیبانی نکند.
نسخه 2
لاراول ۲ در همان سال ۲۰۱۱ همراه با بهینه سازیهای متعددی منتشر شد. اصلیترین ویژگی که در این نسخه افزوده شد، پشتیبانی از Controllerها بود. Laravel با ارائه این نسخه توانست به صورت کامل از معماری MVC پشتیبانی کند و به عنوان یک فریم ورک شناخته شود. دومین ویژگی که در این نسخه اضافه شد، موتور رندر قالب blade بود. این موتور رندر با هدف افزایش سرعت توسعه قالبها و کاهش میزان کدنویسی ارائه شد.
نسخه 3
سومین نسخه از Laravel در سال 2012 منتشر شد. از ویژگیهای مهمی که به این فریم ورک اضافه شده بود، استفاده از خط فرمان CLI بود که با نام artisan شناخته میشد. artisan امکانات بسیاری زیادی در اختیار توسعه دهندگان قرار میدهد. پشتیبانی داخلی از مدیریت سیستم پایگاه داده و ابزارهای کنترلی آن به نام migration ها، پشتیانی از سیستم Packaging و اضافه شدن مستندات بسیار غنی در قالب سایت laravel.com بخشی از ویژگی هایی بود که در این نسخه از Laravel ارائه شده بودند. سومین نسخه از این فریم ورک، توانست محبوبیت زیادی را در بین کاربران ایجاد کند.
نسخه 4
پس از موفقیت هایی که این فریم ورک در نسخه سوم به دست آورد، در سال ۲۰۱۳ چهارمین نسخه آن بر پایه کدهای Illuminate منتشر شد. این نسخه از لاراول به صورت کامل مورد بازنویسی قرار گرفت و با پشتیبانی از سیستم Composer گام بلندی در جهت پیشرفت و سبقت از سایر رقیبان خود برداشت. به دلیل استفاده از این ویژگی امکان استفاده از پکیجها و کتابخانههای زیادی که توسط سایر برنامه نویسان PHP توسعه داده شده بود، برای کاربران امکان پذیر شد. همچنین امکاناتی مانند ارسال ایمیل به روشهای مختلف و پشتیبانی از حذف شدن با تأخیر رکوردهای بانک اطلاعاتی (Soft Deletion) از دیگر امکانات نسخه 4 لاراول بود.
نسخه 5
در سال 2015 پس از دو سال از ارائه چهارمین نسخه از این فریم ورک، نسخه 5 لاراول منتشر شد. این نسخه از لاراول از ویژگیهای بسیار متعددی پشتیبانی میکرد. پشتیبانی از سیستم برنامه ریزی اجرای وظایف با استفاده از پکیج Scheduler، بهینه سازی assets، ساده شدن عملیات احراز هویت، همچنین ارائه ساختار درختی برای توسعه اپلیکیشنها، بخشی از قابلیتهای اضافه شده در لاراول 5 بود. این نسخه از Laravel به صورت مداوم مورد بروزرسانی قرار گرفت و در هر یک از این بروزرسانیها امکانات و ویژگیهای زیادی به این فریم ورک اضافه شد.
نسخه 6
پس از مدتی لاراول نسخه 6 خود را منتشر کرد، که در این نسخه بسیاری از نقصهای نسخه 5 را برطرف کرد و ویژگیهای جدیدی که قطعا مورد انتظار طرفدارانش بود را فراهم ساخت، یکی از این ویژگیها، استفاده از Laravel Vapor بود.
نسخه 7
نسخه 7 که نسبت به نسخه قبلی آن، تغییرات و بهبودهای چشمگیری پیدا کرده است، که یه سیستم جدید به اسم سیستم Airlock یک سیستم سبک برای احراز هویت در اپلیکیشنهای تک صفحهای (SPA)، اپلیکیشنهای موبایل و رابطهای نرم افزاری (API) توکن بیس (Token Base) میباشد.
توسعه دهندگان این فریم ورک همواره در تلاش اند تا استفاده از این فریم ورک را برای کابران ساده و لذت بخشتر کنند. بنابراین آنها بیش از پیش به توسعه لاراول میپردازند تا سیر تکاملی و رو به پیشرفت آن را حفظ کنند. تا کنون بروزرسانیهای زیادی پس از نسخه 7 لاراول ارائه شده است. در هر یک از این بروزرسانیها امکانات منحصر به فرد و کاربردی به این فریم ورک اضافه شده است. یکی از عوامل اصلی محبوبیت لاراول در میان کاربران، همین بروزرسانیهای مداوم است.
قابلیتها و مزایای فریم ورک laravel
فریم ورک Laravel مزایای بسیار زیادی دارد که با هر بروزرسانی شمار آنها افزایش مییابد. از 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 ها برای ایجاد دیتابیس است که باعث سهولت انتقال و مدیریت اطلاعات میشود. لاراول دارای سیستمهای امنیتی متعددی است که باعث جلوگیری از انواع حملات، مدیریت ذخیره سازی کوئریهای دیتابیس و … میشود. اینها برخی از مهمترین مواردی هستند که در لاراول باعث کاهش مشکلات و افزایش سرعت توسعه اپلیکیشنها میشوند.
ویژگی Migration در فریم ورک laravel
یکی از بزرگترین مزیتهای این فریم ورک، این است که از ویژگی Migration استفاده میکند. این ویژگی در واقع یک سیستم کنترل ورژن بانک اطلاعاتی یا Database میباشد که باعث میشود تا به راحتی با هاست خود در ارتباط باشید و بتوانید به راحتی با آن تعامل کنید. همانطور که گفتیم، این ویژگی یکی از برترین مزیتهای استفاده از فریم ورک لاراول میباشد چرا که کار کردن با Database همواره دارای سختیهای بسیار زیادی بوده است و شما به وسیله این ویژگی میتوانید به راحتی با Database خود ارتباط برقرار کنید.
پشتیبانی از Databaseهای مختلف
در حال حاضر لاراول از پایگاههای داده MySQL ،SQLServer ،PostgreSQL و SQLLite پشتیبانی میکند.
خط فرمان Artisan در فریم ورک laravel
فریم ورک لاراول دارای یک خط فرمان قدرمند است که با استفاده از آن میتوانید سرعت کدنویسی را به میزان قابل ملاحظه ای بالا ببرید. این خط فرمان آرتیسن (Artisan) نام دارد. آرتیسن میتواند به طور اتوماتیک برای شما Controller، Migration به همراه توابع اصلی، Model و… بسازد. همچنین Artisan میتواند یک سرور مجازی برای تست لاراول راه اندازی کند یا دیتابیسهای شما را با استفاده از Migration ها تغییر دهد.
Libraryهای Object-Oriented یا شی گرا
همانطور که میدانید، Laravel بهترین فریم ورک زبان PHP است که تعداد بسیار زیادی کتابخانه یا Libraryهای Object-Oriented را دارا میباشد که این Libraryها در فریم ورکهای دیگر PHP وجود ندارند. یکی از این Libraryها که بهصورت پیشفرض بر روی لاراول نصب میباشد، Authentication Library است. این Library امکانات زیادی مانند چک کردن کاربران hash ،Online کردن رمز عبور و تمام فیلدهایی که میخواهیم، جلوگیری از حملات CSRF و امکانات پیشرفته دیگری را دارا میباشد.
پشتیبانی از معماری MVC
دلیل دیگری که لاراول را به بهترین فریم ورک زبان PHP تبدیل کرده است، پشتیبانی از معماری MVC مانند فریم ورک Symfony است. معماری MVC یا Model ،View ،Controller در بهبود عملکرد برنامه نویسی فوقالعاده کمک میکند و باعث میشود برنامهی ما علاوه بر عملکرد بهتر، بسیار منظمتر باشد.
نصب و سفارشی سازی بسیار آسان
قطعا برای کار کردن با یک فریم ورک، نحوهی نصب و سفارشیسازی آن در اولویت بالایی قرار ندارد و بسیاری از Framework ها نحوهی نصب دشوار اما کارایی و مزیتهای زیادی دارند. به همین علت گاهی اوقات این فکر به سرمان میآید که کاش نحوهی نصب فریم ورکی با مزیتهای بسیار زیاد حداقل کمی آسانتر بود. Laravel همان فریم ورکی است که در کنار مزیتهای فراوان، نحوهی نصب و سفارشی سازی فوقالعاده آسانی دارد.
در طول این مقاله بارها گفتیم که لاراول محبوبترین فریمورک PHP است. اما این چگونه میتواند یک مزیت محسوب شود؟ باید بگوییم که محبوبیت بالا برای یک ابزار یعنی استفاده بیشتر از آن و استفاده بیشتر یعنی جامعه ای بزرگتر (Community) از کاربران که میتوانند به شما در حل مشکلاتتان با آن ابزار کمک کنند! هر مشکلی که در استفاده از لاراول داشته باشید فرقی نمیکند! با مطرح کردن آن در یکی از صدها وب سایت و انجمن لاراول میتوانید در عرض چند دقیقه به جوابتان برسید
احراز هویت یا Authentication
فریم ورک لاراول دارای یک سیستم احراز هویت قدرتمند به همراه کدهای آمادهی پیکر بندی آن است. کافی است پس از نصب لاراول 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 محافظت میکند و کسی که در حال برنامه نویسی با استفاده از فریم ورک لاراول میباشد دیگر نیازی نیست که نگران این موارد باشد.
اعتبار سنجی با Validation
گاهی نوشتن دستی همه کدهای اعتبارسنجی بسیار زمانبر و کسل کننده میشود. اما Laravel این مشکل را حل کرده است. لاراول دارای یک سیستم اعتبارسنجی قوی است. کافی است مشخص کنید هر فیلد از فرم باید از چه نظر اعتبار سنجی شود. یعنی قوانین اعتبار سنجی را مشخص کنید. بعد از آن همه اعتبارسنجیها بهصورت خودکار انجام میشود.
Middleware در فریم ورک laravel چیست ؟
لاراول برای پردازش ریکوئستها از میان افزار یا Middleware استفاده میکند. میتوان گفت که Middleware پلی میان Request و برنامه است. تمام Requestها در لاراول مجبورند از این پل عبور کنند. مثلا لاراول برای تشخیص کاربرانی که احراز هویت نکرده اند از یک میدلور به نام Auth استفاده میکند. تمام صفحاتی که از میدلور Auth استفاده کنند، در صورت باز شدن توسط کاربران احراز هویت نشده به صفحه ورود یا لاگین منتقل میشوند. البته نمیتوان این ابزار را تنها یک ابزار امنیتی دانست. چرا که میتواند موارد کاربرد بسیاری داشته باشد. نمونههایی از این کاربردها عبارت اند از:
- پیاده سازی سایتهای چند زبانه
- پیاده سازی حالت در دست تعمیر یا بهطور مثال میخواهیم صفحهای از سایت را تغییر دهم و فعلا میخواهیم آن صفحه یک متن هشدار که سایت در حال بروزرسانی است را برای کاربران نمايش دهد
- شناسایی ریکوئست هایی که از طرف رباتها میآیند و جلوگیری از حملات DDOS
- Log کردن و…
کاهش حجم کد نویسی
در Laravel تمام Queryهای شما میتوانند در Modelهای جداگانه ای ذخیره شوند که بعدها از آنها استفاده کنید.
این ویژگی فوق العاده باعث شده است که در برنامه نویسی سایت با استفاده از فریم ورک لاراول حجم بسیار زیادی از کدهای شما کاهش یابد و شما بتوانید بهتر و راحتتر با برنامهی خود تعامل داشته باشید و آن را اصلاح کنید.
دیدگاه و پرسش