در سالهای اخیر با پیشرفت ابزارها و فریمورکها، توسعه اپلیکیشنهای تحت وب سادهتر شده است. مجموعهای از ابزارها برای کمک به سادهسازی پردازشهای توسعه وب برای برنامه نویسان در دسترس هستند که یکی از مفیدترین و پرکاربردترین آنها، فریمورک لاراول است. لاراول فریمورکی بر اساس زبان برنامه نویسی PHP به حساب میآید و در این مطلب سعی شده است به طور جامع به این سوال پاسخ داده شود که فریمورک لاراول چیست و همچنین انواع ساختارها، مؤلفهها و برخی از «بستههای» (Package) مهم و کاربردی آن توصیف شدهاند.
فریمورک لاراول چیست ؟
سادهترین پاسخی که برای این سوال میتوان شرح داد این است که لاراول فریمورک چندپلتفرمی و «متن باز» (Open Source) زبان PHP برای ساخت اپلیکیشنهای وب به حساب میآید. این فریمورک بسیار قدرتمند است و به راحتی میتوان آن را یاد گرفت و درک کرد. اما درک واقعی مزایا و کاربردهای لاراول نیاز به شناخت عمیق این فریمورک دارد. لاراول به توسعه دهندگان این امکان را میدهد تا از مزایای کتابخانههای بزرگ، عملکردهای «از پیش برنامه نویسی شده» (Pre-Programmed) مانند رویکردهای احراز هویت، مسیریابی و قالب HTML استفاده کنند. دسترسی به این فریمورک و کتابخانههای آن ساخت سریع برنامههای کاربردی وب قدرتمند را آسانتر میکند و در عین حال میزان کدنویسی لازم را به حداقل میرساند.
فریمورک لاراول محیط توسعهای بسیار کاربردی و «واسطهای» (Interface) «خط فرمان» (Command-Line) شهودی و بصری خوبی را ارائه میدهد. بهعلاوه، این فریمورک از «نگاشت شیء-رابطهای» (Object Relational Mapping | ORM) برای سادهتر شدن دسترسی به دادهها و دستکاری آنها استفاده میکند. اپلیکیشنهای ساخته شده با استفاده از فریمورک لاراول قابلیت مقیاسپذیری بالایی دارند و همچنین دارای «پایگاه کُد» (Codebase) مناسبی برای نگهداری آسان کدها هستند. توسعه دهندگان با استفاده از این کدها میتوانند قابلیتهای عملکردی موردنظرشان را به اپلیکیشنها اضافه کنند.
فریمورک لاراول از الگوی طراحی «مدل، نما، کنترلر» (Model View Controller | MVC) پیروی میکند. فریمورک Laravel از مؤلفههای موجود در فریمورکهای مختلف استفاده میکند و این روش به ایجاد اپلیکیشن تحت وب کمک میکند. اپلیکیشنهای تحت وب با استفاده از این رویکردهای MVC، ساختاری مناسب و عملیتر پیدا میکنند. لاراول مجموعهای جامع و غنی از عملکردهایی را ارائه میدهد که شامل ویژگیهای اساسی از فریمورکهای زبان PHP از جمله «CodeIgniter» و «Yii» و همچنین سایر زبانهای برنامه نویسی مانند «روبی» (Ruby) و فریمورک «Ruby on Rails» میشوند.
به طور کلی میتوان گفت که فریمورک لاراول دارای ویژگیهای قدرتمند و کاربردی است که باعث افزایش سرعت «توسعه وب» (Web Development) میشوند. اگر برنامه نویسان با PHP در سطح پیشرفته آشنا باشد، لاراول کارهای انجام شده در این سطح را بسیار سادهتر خواهد کرد. به طور کلی ساخت و توسعه یک وب سایت از ابتدا، همراه با نوشتن همه مفاهیم آن، زمان بسیاری میبرد که میتوان با استفاده از فریمورک لاراول این زمان را کاهش داد. همچنین این فریمورک باعث امنتر شدن وب سایت و جلوگیری از حملات سایبری نیز میشود. در بخش بعدی مطلب «فریمورک لاراول چیست» به این سوال پاسخ داده شده است که Laravel برای توسعه کدام بخش از وب سایت استفاده میشود؟
لاراول برای توسعه بکاند یا فرانتاند؟
به طور کلی میتوان گفت که لاراول یک فریمورک توسعه «بکاند» (Back End) به حساب میآید، با این حال، این فریمورک برخی ابزارها و رویکردهایی را برای توسعه «فرانتاند» (Front End) نیز ارائه میدهد. البته بسیاری از ویژگیهای لاراول به توسعه فرانتاند وابسته نیستند. با توجه به کاربردها و ویژگیهای Laravel، در ادامه به این موضوع میپردازیم که آیا لاراول یک زبان برنامه نویسی به حساب میآید؟
آیا لاراول یک زبان برنامه نویسی است؟
خیر؛ همانطور که در بخشهای ابتدایی این مطلب نیز به آن اشاره شد، لاراول یک فریمورک و چارچوب به حساب میآید و زبانی که لاراول از آن استفاده میکند، PHP است. زبان برنامه نویسی تنها مجموعهای محدود از قواعد برای اجرا عملکردها است، اما فریمورک مجموعهای از ابزارهای کاربردی و مفید به حساب میآید که برای یک زبان برنامه نویسی خاص نوشته شدهاند.
فریمورک PHP چیست؟
فریمورکهای PHP، مجموعهای از کتابخانه کدها را فراهم میکنند که شامل ماژولهای از قبل برنامه نویسی شده هستند و این ویژگیها قابلیتهایی به کاربران میدهند تا اپلیکیشنها را سریعتر بسازند. این فریمورکها به توسعه دهندگان ویژگیهای بسیاری را از جمله توسعه سریع، کاهش کدنویسی و افزایش امنیت پیشنهاد میدهند. همچنین فریمورکهای PHP به توسعه دهندگان تازه کار کمک میکنند تا تمرین برنامه نویسی کنند و با روشهای کدنویسی مختلف در زمینه کاری خود پیشرفت داشته باشند.
همچنین اپلیکیشنهای ایجاد شده با فریمورکهای PHP نسبت به اپلیکیشنهایی که از ابتدا برنامه نویسی شدهاند، معمولاً قابلیت نگهداری کمتری نیاز دارند. بیشتر فریمورکهای جدید PHP دارای «اصول برنامه نویسی شی گرا» (Object Oriented Programming | OOP) هستند و به همین دلیل، بهتر است که توسعه دهندگان درک پایهای از مفهوم «کلاسها» (Class)، «اشیا» (Object)، «وراثت» (Inheritance) و سایر موارد برای استفاده از آنها داشته باشند. فریمورکهای PHP از جمله لاراول، از معماری MVC استفاده میکنند. در ادامه به یادگیری این نوع از فریمورکها میپردازیم، اما پیش از آن، سوال PHP چیست به اختصار پاسخ داده شده است.
PHP چیست ؟
PHP که مخفف عبارت «Hypertext Preprocessor» است، زبانی متن باز، اسکریپتی و «سمت سرور» (Server Side) به حساب میآید که به طور گستردهای در توسعه وب مورد استفاده قرار میگیرد. از اوایل سال ۱۴۰۰ شمسی (۲۰۲۱ میلادی)، نزدیک به ۸۰٪ وب سایتها با استفاده از PHP یا ابزارهای مرتبط به آن ساخته شدهاند. ممکن است برخی از توسعه دهندگان زیاد با زبان PHP آشنا نباشند، اما بیشتر آنها با وردپرس کار کردهاند. وردپرس نیز یکی از ابزارهای توسعه وبی است که در آن از زبان PHP استفاده شده است.
تفاوت بین زبان های برنامه نویسی و اسکریپتی چیست؟
زبان برنامه نویسی دستورالعملهایی برای کامپیوتر را شامل میشود و برای ایجاد نرم افزارهایی کامل مورد استفاده قرار میگیرد. در طرف دیگر، زبان اسکریپتی نوعی زبان برنامه نویسی است که در اصل برای خودکارسازی برخی وظایف خاص داخل یک نرم افزار به کار گرفته میشود. به عبارتی، این دو نوع زبان در نوع ترجمه کدها به زبان ماشین و استفاده از کامپایلر و مفسر تفاوت دارند. تفاوت کامپایلر و مفسر در عملکرد زبانها تأثیر میگذارد.
برنامههایی که با زبانهای اسکریپتی ساخته میشوند در «زمان اجرا» (Run Time) کامپایل خواهند شد، به عبارت دیگر، هر دستورالعمل به صورت جداگانه و خط به خط در زمان اجرا تفسیر میشود و اجرای اپلیکیشن کندتر از اپلیکیشنهای «از قبل کامپایل شده» (Pre-Compiled) خواهد بود. همچنین، ممکن است تفسیر خط به خط برنامه در زمان اجرا در زمان رخ دادن خطا منجر به توقف یا از کار افتادن برنامه کاربردی شود. از طرف دیگر، برنامههای از پیش کامپایل شده در حین کامپایل، خطاها را بررسی و در زمان اجرا قویتر عمل میکنند. با این حال، برای بسیاری از کاربران، معایب زبانهای اسکریپتی با مزایای سهولت استفاده و تکرار آنها جبران میشود.
معماری MVC چیست؟
معماری MVC یا همان «مدل، نما، کنترلر» دارای سه بخش است که در ادامه شرح داده شدهاند:
- «مدل» (Model): مدل در این نوع معماری، شامل دادههای اپلیکیشن همراه با همه بخشهای منطقی آن است. برای مثال در یک اپلیکیشن، جدولی از مشترکین، میتواند یک مدل باشد.
- «نما» (View): این بخش، تعامل با کاربر را ایجاد میکند و دادههای مدل را در آن میتوان مشاهده و اصلاح کرد.
- «کنترلر» (Controller): کنترلر مانند گذرگاهی بین بخش مدل و نما است. به عبارت دیگر، کنترلر درخواستهای کاربران را دریافت و اطلاعات مورد نیاز را برای پاسخ از مدل بازیابی میکند و پس از پردازش، آنها را به نما برمیگرداند.
آسیب پذیری های فریمورک های PHP
فریمورکهای PHP مانند وردپرس و لاراول دارای چند آسیبپذیری رایج هستند. معروفترین آسیبپذیری که در آنها به وجود میآید، «تزریق کد» (Code Injection) و «تزریق SQL» است. فریمورک لاراول ویژگیهایی دارد که به جلوگیری از تزریق SQL و حملات دیگر کمک میکند. با این حال، توسعه دهندگان بهتر است که تستهای زیادی با استفاده از روشهایی مانند «تست نفوذ» (Penetration Test) برای اطمینان از امنیت برنامه انجام دهند.
تست نفوذ، روش پیچیدهای است که توسط متخصصین امنیت سایبری باتجربه انجام میشود. آنها سعی میکنند بدون دانستن اطلاعاتی در مورد سیستم، به آن نفوذ کنند تا آسیبپذیریهای امنیتی موجود را بیابند. در بخش بعدی از مطلب «فریمورک لاراول چیست» به بررسی کاربردهای لاراول میپردازیم.
کاربرد لاراول در برنامه نویسی چیست؟
در درجه اول باید گفت که کاربرد اصلی لاراول، ساخت اپلیکیشنهای تحت وب سفارشی با استفاده از PHP است. به طور کلی، به وسیله لاراول میتوان بسیاری از مواردی را مدیریت کرد که ساختن آنها توسط توسعه دهنده بسیار دشوار است. از جمله این موارد میتوان به مسیریابی، قالببندی HTML و احراز هویت اشاره کرد. فریمورک لاراول به دلیل اجرا با زبان PHP به طور عمده برای توسعه عملکردهای سمت سرور به کار میرود و به میزان زیادی روی تغییر و ویرایش دادهها و استفاده از طراحی «مدل، نما و کنترلر» تمرکز دارد. فریمورکی مانند «React» ممکن است بیشتر برای تعامل با کاربر و ویژگیهای مرتبط با آنها متمرکز باشد، اما فریمورک لاراول، پایهای اساسی و قوی برای ساخت اپلیکیشنی با عملکرد صحیح ایجاد میکند.
لاراول یکی از بهترین فریمورکهای زبان PHP به حساب میآید، اما فریمورکهای با کیفیت دیگری نیز در سایر زبانهای برنامه نویسی وجود دارند، برای مثال، Rails فریمورکی سمت سرور و مبتنی بر زبان روبی است که عملکردی شبیه به فریمورک لاراول دارد؛ یا فریمورکهای سمت سرور «React ،«Vue و «Angular» را هم میتوان نام برد که مبتنی بر زبان «جاوا اسکریپت» (JavaScript) هستند و کاربردی شبیه به فریمورک لاراول دارند.
از سوی دیگر، اگر هدف اپلیکیشن بیشتر تولید پستهای متنی است و سبک وبلاگی دارد، میتوان از سیستم مدیریت محتوای وردپرس استفاده کرد که آن هم بر پایه زبان PHP اجرا میشود. اما در لاراول برای توسعه دهنده بهمنظور استفاده از ابزارها و ویژگیهای غیرضروری برای رسیدن به هدف محدودیت ایجاد نمیشود؛ بلکه در لاراول فقط ابزارهایی برای توسعه دهنده در نظر گرفته میشوند که بتوان با استفاده از آنها اپلیکیشن موردنظر خود را ساخت. در بخش بعدی از مطلب «لاراول چیست»، پیش از پرداختن به دلیل استفاده از فریمورک لاراول، برخی از دورههای آموزش برنامه نویسی تم آف به علاقهمندان و دانشجویان معرفی شدهاند.
معرفی فیلم های آموزش برنامه نویسی PHP تم آف
در پلتفرم تم آف دورههای آموزشی براساس موضوع دستهبندی شدهاند و مجموعههای آموزشی مختلفی تشکیل شده است. مجموعه آموزشی مرتبط با این مقاله، «مجموعه دورههای آموزش PHP» نام دارد که در آن علاوه بر دوره جامع و کاربردی آموزش PHP دورههای متعدد دیگری نیز برای فریمورکها و سایر ابزارها و نرم افزارهای مبتنی بر PHP در دسترس هستند. همچنین تعدادی دوره آموزش پروژهمحور PHP نیز در این مجموعه در اختیار علاقهمندان قرار دارند. در مجموعه آموزش PHP برای فریمورک لاراول نیز چند دوره آموزشی موجود است و علاوه بر آنها، میتوان بر حسب نیاز از آموزشهای مربوط به سایر فریمورکهای محبوب PHP مثل کدایگنایتر یا سیمفونی و سایر موارد نیز استفاده کرد. در تصویر فوق تنها ۶ دوره آموزشی از این مجموعه نمایش داده شدهاند.
- برای شروع یادگیری فریمورک های PHP و دسترسی به همه دورههای آموزش PHP تم آف + اینجا کلیک کنید.
در ادامه مطلب «لاراول چیست» پس از معرفی برخی از دورههای آموزش برنامه نویسی تم آف، به بررسی دلیل استفاده از فریمورک لاراول پرداخته میشود.
چرا باید از فریمورک لاراول استفاده کرد؟
لاراول مجموعه بزرگی را از ابزارهای قدرتمند ارائه میدهد که به آسانتر و سریعتر شدن فرایند توسعه اپلیکیشنهای تحت وب کمک میکنند. همچنین، کدبیس (Codebase) برنامه نهایی فریمورک لاراول در حد مطلوبی ساختاریافته و به راحتی قابل نگهداری است.
قابلیتها و مزایای فریم ورک لاراول چیست ؟
ویژگیهای فریمورک لاراول دلیل خوبی برای استفاده از آن بهمنظور ساخت اپلیکیشنهای تحت وب محسوب میشود. بنابراین سعی شده است که در این بخش به بیشتر ویژگیهای لاراول پرداخته شود. در ابتدا به بررسی ویژگی یادگیری آسان لاراول پرداخته شده است.
یادگیری آسان لاراول
میتوان به طور نسبی گفت که لاراول فریمورکی ساده برای یادگیری به حساب میآید. جهت استفاده و درک مؤثر فریمورک Laravel، بهتر است درک کلی را از زبان PHP و مفاهیم «برنامه نویسی شی گرا» (OOP) بدست آورد. همچنین داشتن اطلاعاتی درباره HTML نیز میتواند در یادگیری لاراول سودمند باشد. در هر فریمورکی با معماری MVC، درک سیستم مدیریت پایگاه داده رابطهای از جمله MySQL یا PostgreSQL مفید است.
آموزش لاراول رایگان (Laravel) — راهنمای شروع به کار و مسیر یادگیری
ساده شدن فرایند توسعه با فریمورک لاراول
در ابتدای طراحی فریمورک لاراول، این فریمورک برای سادهسازی وظایفی که در انواع پروژههای توسعه وب رایج هستند، از جمله مسیریابی، احراز هویت، جابهجایی و حرکت یا انتقال، «پنهانسازی» (Caching) و سایر موارد طراحی شده بود. لاراول ادغام یا همان یکپارچهسازی ماژولهای از قبل ساخته شده را با اپلیکیشنها ساده میکند و از واسطهای خط فرمان بصری و واضح در روند کار آن استفاده میشود. لاراول دارای مجموعهای گسترده از اسناد راهنمای آنلاین است که مسیر یادگیری مناسبی را به توسعه دهندگان باتجربه نشان میدهد. همچنین، منابع گسترده بسیار و مختلفی در تمام سطوح مهارتهای لاراول در این اسناد در دسترس هستند.
ابزارهای مختلف لاراول برای توسعه دهندگان در همه سطح ها
لاراول به عنوان فریمورکی پیشرفته و پیشرونده محسوب میشود. میتوان گفت فریمورک لاراول قابلیتهای مختلفی را برای کاربران در سطحهای گوناگون ارائه میدهد که هر کدام از این قابلیتها فقط برای همان سطح مناسب و مفید هستند. برای مثال، برنامه نویسان تازهکار به کیتهای ابتدایی برای ماژولهایی از جمله ویژگیهای احراز هویت پایه دسترسی دارند. بسیاری دیگر از این ابزارها با جزئیات فراوان در تصویر زیر مشاهده میشوند. این تصویر برخی از ابزارهای نسخه ۵.۷ فریمورک لاراول را در ویرایشگر کد Sublime Text نشان میدهد.
توسعه دهندگان باتجربهتر میتوانند از موتورهایی استفاده کنند که زیرمجموعه کیتهای ابتدایی برای ساختن پردازشهای احراز هویت هستند و ادغام و یکپارچهسازی آنها را با کدهای فرانتاند در برنامه خود انجام دهند.
مقیاس پذیری آسان لاراول
فریمورک لاراول در سطح بالایی مقیاسپذیر است. با پشتیبانی و یکپارچهسازی سریع و سیستمهای کش توزیع شده، اپلیکیشنهای لاراول امکان پاسخگویی به میلیونها درخواست را در یک ماه دارند. همچنین، فریمورک لاراول پلتفرم استقرار «فاقد سروری» (Serverless) به نام «Vapor» را ارائه میدهد که مبتنی بر «خدمات وب آمازون» (Amazon Web Services | AWS) است و سطح بالایی از مقیاسپذیری را فراهم میکند.
اکوسیستم و جامعه بزرگ فریمورک لاراول
فریمورک لاراول دارای اکوسیستمی فوقالعاده است که توسط جامعه بزرگی از توسعه دهندگان پشتیبانی میشود. به دلیل اینکه لاراول یکی از پراستفادهترین فریمورکهای PHP به حساب میآید، دارای کتابخانهها و بستههای در دسترس زیادی برای اپلیکیشنها است.
هم بستههای اصلی و هم بستههای واسطه فریمورک لاراول به راحتی در دسترس هستند. بستههای اصلی فریمورک لاراول، شامل روشهای احراز هویت، مدیریت سرور، پرداخت صورت حساب، تست مرورگر، خودکارسازی و سایر موارد هستند. قابلیت دسترسی به بستههای واسطه برای فریمورک لاراول در وب سایتهای بسیاری وجود دارد که دو نمونه از این وب سایتها شامل «Packalyst» [+] و «Laravel News» [+] میشوند. اطلاعات در دسترس بسیاری درباره جامعه توسعه دهندگان لاراول وجود دارند. بنابراین، توسعه دهندگانی که درباره استفاده از فریمورک لاراول سوالی دارند یا با چالشهایی روبهرو شدهاند، میتوانند در وب سایتهای مختص به جامعه توسعه دهندگان، با آنها در ارتباط باشند و پاسخ سوال خود را بیابند. برخی از این وب سایتها در ادامه معرفی شدهاند:
- «Laravel.io» [+]
- «The Laravel subreddit» [+]
- «Laracasts» [+]
استفاده گسترده از لاراول
بسیاری از شرکتها از فریمورک لاراول برای ساخت وب سایتهای کاربردی موردنظر خود استفاده میکنند و قابلیتهای گسترده این فریمورک باعث استفاده فراوان از آن شده است.
در بخش بعدی از مطلب «فریمورک لاراول چیست» به دلیل یادگیری لاراول و ارائه بهترین روش یادگیری آن میپردازیم.
بهترین روش یادگیری فریم ورک لاراول چیست ؟
لاراول را میتوان به سادگی آموخت و این فریمورک دارای منحنی یادگیری همواری است. مخصوصاً اگر دانشجو با زبان PHP آشنا باشد، خیلی سریعتر و سادهتر میتواند لاراول را بیاموزد. این موضوع مهم در رابطه با یادگیری لاراول وجود دارد که اگر توسعه دهنده در هنگام یادگیری در بخشی مشکلی داشته باشد، میتواند به راحتی با ارتباط برقرار کردن با جامعه توسعه دهندگان ارشد این حوزه و منابع زیاد موجود برای آن، مشکل خود را برطرف کند. منابع بسیاری برای یادگیری لاراول از جمله پادکستها، ویدیوهای آموزشی و آموزشهای متنی وجود دارند.
یکی از بهترین روشهای یادگیری لاراول، خواندن اسناد راهنمای آن است، همچنین در کنار آن میتوان از آموزشهای متنی استفاده کرد که در وبلاگهای مختلف از جمله «مجله تم آف» ارائه شدهاند. پس از اتمام یادگیری لاراول، میتوان با استفاده از طراحی پروژهها و تمرین برنامه نویسی به وسیله ایجاد پروژه، سطح یادگیری خود را افزایش داد.
فریمورک لاراول چه کاری انجام می دهد؟
مجموعه ویژگیها و عملکردهای فریمورک لاراول بسیار گستردهتر از آن است که در این مطلب کوتاه به طور کامل پوشش داده شوند. اما در ادامه چند ویژگی مهم آن بررسی و فهرست شدهاند:
- مدیریت مسیر: فریمورک لاراول از مدیریت مسیری بصری و مستقیم با استفاده از نامهای ساده برای معرفی مسیرها به جای نامهای طولانی استفاده میکند. استفاده از نامهای شناسایی مسیرها، نگهداری برنامهها را سادهتر خواهد کرد؛ زیرا نام مسیر را میتوان در یک مکان به جای سرتاسر مسیر تغییر داد. همه مسیرهای واسط یا همان اینترفیس وب اپلیکیشن ساخته شده با فریمورک لاراول در فایل routes/web.php
ذخیره میشوند.
- امنیت: فریمورک لاراول شامل تعداد زیادی ویژگی امنیتی از جمله احراز هویت کاربر، احراز هویت نقش کاربر، اعتبارسنجی ایمیل، خدمات رمزنگاری، پنهانسازی رمز عبور و ویژگیهای بازنشانی رمز عبور است.
- انتقال: لاراول ابزار «کنترل نسخهای» (Version Control) برای پایگاه دادههای اپلیکیشن با استفاده از انتقال فراهم میکند. انتقالها نحوه دستکاری و تغییر پایگاه دادهها را در طول زمان ردیابی و بررسی میکنند و با استفاده از آنها تخریب و ایجاد مجدد پایگاه داده در صورت لزوم آسانتر انجام میشود.
- قالب: «Blade» را میتوان به عنوان موتور قالبسازی PHP لاراول معرفی کرد. موتورهای قالبسازی PHP به تقسیم منطق کسب و کار از قالبهای HTML کمک میکنند و در نتیجه کدهای پایهای ایجاد میشوند که راحتتر نگهداری خواهند شد. ابزار Blade لاراول عملکرد و کاربردهای بیشتری نسبت به موتورهای قالبسازی دیگر ارائه میدهد؛ زیرا Blade امکان استفاده از کدهای PHP ساده را به توسعه دهندگان میدهد که موتورهای دیگر این امکان را ندارد.
- نشستها یا همان Session: لاراول از سشنها برای ذخیره اطلاعات کاربران از میان چندین درخواست استفاده میکند. به عنوان یکی از درایورهای سشن داخلی فریمورک لاراول میتوان به «Cookies» اشاره کرد.
- اعتبارسنجی دادهها: فریمورک Laravel اعتبارسنجی دادههای ورودی کاربر را ساده میکند. همچنین، این فریمورک دارای تعداد زیادی قانون اعتبارسنجی، همراه با پیامهای خطای قابل «سفارشیسازی» (Customizable) است.
- مدیریت کش: لاراول از پنهانسازی یا همان کشینگ دادهها برای کاهش زمان پردازش وظایف اپلیکیشن پشتیبانی میکند. API کش فریمورک لاراول، از ابزارهای مدیریت کش بکاند واسطه بسیاری از جمله Memcached و Redis پشتیبانی کرده است.
- مدیریت خطا: با شروع ایجاد یک پروژه به وسیله فریمورک لاراول، به صورت خودکار مدیریت خطا نیز در آن پیکربندی میشود. اپلیکیشنهای لاراول میتوانند در «حالت دیباگ» (Debug Mode) پیادهسازی شوند و پیامهای خطای دقیق با جزئیاتی را برای همه خطاهایی تولید کنند که در اپلیکیشن رخ میدهند.
- تست: فریمورک لاراول روشهای تست و آزمایش قابل توجهی را ارائه میدهد. Laravel از روش «تست واحد» (Unit Test) پشتیبانی میکند که آزمایشهای کوچکی بر روی بخشهای جدا شده از کدهای اپلیکیشن هستند. همچنین این فریمورک از روش «تست ویژگی» (Feature Test) نیز پشتیبانی میکند و این روش، تستهایی را روی بخشهای بزرگتر همراه با عملکردهای سطح بالاتر انجام میدهد.
- مدیریت حافظه و فایلها: Laravel از بسته «Flysystem PHP» برای آمادهسازی درایورها جهت کار با «فایل سیستمهای» (File System) مختلف، از فایل سیستمهای محلی گرفته تا حافظههای ذخیرهسازی مبتنی بر «فضای ابری» (Cloud) مانند «Amazon S3» استفاده میکند. همچنین فریمورک لاراول رد و بدل کردن فایلها را با «پروتکل انتقال فایل» (SSH File Transfer Protocol | SFTP) انجام میدهد.
- قابلیت Sync شدن با ایمیلها در لاراول: فریمورک لاراول شامل یک API ایمیل مبتنی بر کتابخانه «SwiftMailer» است که امکان ارسال ایمیل در لاراول از طریق سرویس انتخابی را فراهم میکند. در این فریمورک از پیوستها و صفهای ایمیل نیز پشتیبانی شده است.
- اطلاعیه یا نوتیفیکشنها: لاراول از ارسال نوتیفیکیشنها از طریق تعدادی کانال، چه کانالهای پرکاربرد و شناخته شده مانند SMS یا Slack و چه با استفاده از کانالهای توسعه یافته توسط جامعه فریمورک لاراول پشتیبانی میکند.
لاراول چگونه کار می کند؟
برای اینکه بتوان درک کرد فریمورک لاراول چه کارهایی میتواند انجام دهد، مهمترین بخش این است که درک شود لاراول با درخواستها، یعنی همان چرخه عمر درخواستها چه کار میکند. همانطور که در بخشهای پیشین به آن اشاره شد، لاراول مبتنی بر معماری MVC است و به درخواستهای کاربران پاسخ میدهد. در این معماری کنترلر برای بازیابی و پردازش دادههای مدل استفاده میشود و اطلاعات را در یک نما به کاربر ارائه میدهد. درخواستها از طریق فایلهای public/index.php
وارد اپلیکیشن لاراول میشوند و این فایل بخشی از فریمورک را بارگذاری و نمونهای از برنامه لاراول را بازیابی میکند.
بعد از بازیابی نمونه اپلیکیشن، درخواست به «هسته کنسول» (Console Kernel) یا هسته پروتکل «HTTP» هدایت میشود. از جمله وظایف دیگر فریمورک لاراول این است که هستهای از «بوتاسترپرها» (Bootstrapper) را تعریف میکند و آنها وظایفی را انجام میدهند که باید قبل از رسیدگی به درخواستها تکمیل شوند. همچنین، فریمورک لاراول، «میان افزارهایی» (Middleware) را تعریف میکند که باید درخواستها قبل از رسیدگی به آنها انجام شوند. یکی دیگر از این وظایف «پیش از مدیریت و رسیدگی» (Pre-Handling)، بارگذاری هر ارائهدهنده خدمات مورد نیاز برای اپلیکیشن است.
هنگامی که بوتاسترپها کامل و ارائهدهنده خدمات مورد نیاز ثبت میشوند، درخواست به «مسیریاب» (Router) ارسال خواهد شد و سپس این درخواست به یک مسیر یا کنترلر هدایت میشود. بهعلاوه، مسیریاب هر میان افزار مورد نیاز مختص به مسیر را اجرا میکند. پس از اینکه درخواست از میان افزارهای مورد نیاز عبور کرد، اجرای یک «متُد» (Method) مسیر یا کنترلر پاسخی را برمیگرداند که از طریق «زنجیره» (Chain) به نما ارسال میشوند.
شروع کار با لاراول
برای شروع کار با فریمورک لاراول، ضروری است که برخی از ساختارها و عملکردهای مهم لاراول به طور کامل توسط توسعه دهندگان درک شوند. در ادامه این عملکردها نام برده و توضیح داده شدهاند. ابتدا به بررسی «Service Containers» پرداخته شده است.
Service Container در فریمورک لاراول چیست ؟
«Service Container» یکی از مؤلفههای اصلی فریمورک لاراول به حساب میآید. این بخش از لاراول، «وابستگیهای کلاسها» (Class Dependency) و «تزریق وابستگی» (Dependency Injection) را مدیریت میکنند. Service Container بخشی از فریمورک لاراول به حساب میآید که توسعه دهنده در آن همه موارد مورد نیاز را برای اجرای یک برنامه لاراول ایجاد میکند. در ادامه تصویری از صفحه یک Service Container نمایش داده شده است.
ارائه دهنده خدمات در فریمورک لاراول چیست ؟
یکی دیگر از بخشهای مهم و پر اهمیت برای یادگیری در فریمورک لاراول، ارائهدهنده خدمات آن است. در این بخش، کلاسها و وابستگیها به Service Containerها تزریق میشوند.
Facade در فریمورک لاراول چیست ؟
Facade یک «واسط ثابت» (Static Interface) برای کلاسهای محدود در Service Container به حساب میآید. Facadeها با ایجاد سینتکسهای خاص و آسان برای نام کلاسهای طولانی به عنوان یک پروکسی، استفاده از لاراول را سادهتر میکنند.
پکیج در فریمورک لاراول چیست ؟
با استفاده از «پکیجها» (بستهها | Package) میتوان به فریمورک لاراول قابلیتهای مختلفی اضافه کرد. این فریمورک دارای «بستههای مستقل» (Stand Alone Package) و «بستههای اختصاصی اپلیکیشن» (Application Specific Package) است. خدمات ارائهدهنده لاراول محل بارگذاری منابع بستهها را مشخص میکنند.
فریمورک Laravel مانند بسیاری دیگر از ابزارهای محلی توسعه، به «داکر» (Docker) وابسته است. Docker ابزاری مبتنی بر Container به حساب میآید که به توسعه دهندگان این امکان را میدهد تا برنامههای خود را به راحتی ایجاد و اجرا کنند. با استفاده از Containerهای داکر، توسعه دهندگان اپلیکیشن خود را با وابستگیهای آن به بسته تبدیل میکنند و آنها را به عنوان بستهای واحد در نظر میگیرند.
واسط خط فرمان فریمورک لاراول چیست ؟
فریمورک لاراول شامل مجموعهای از «واسطهای خط فرمان» (Command Line Interface | CLI) است. برای مثال، کنسول «Artisan» فریمورک لاراول شامل دستوراتی میشود که به توسعه دهندگان این امکان را میدهند تا بتوان با سرعت بالایی کدهای اسکلت اصلی برنامه را بسازند، وظایف تکراری در برنامه را به صورت ساده و خودکار انجام دهند و به طور کلی ساخت اپلیکیشن را به سادگی انجام دهند. در ادامه تصویری از خط فرمان Artisan فریمورک لاراول نمایش داده شده است.
همچنین، «Sail» واسط خط فرمانی سبک به حساب میآید که در لاراول نسخه ۸ معرفی شده است. این واسط خط فرمان، به توسعه دهندگان امکان میدهد تا با داکر (Docker) تعامل داشته باشند. داکر، محیط توسعه پیشفرض فریمورک لاراول به حساب میآید.
آموزش داکر Docker رایگان — از صفر تا صد و به زبان ساده
Eloquent در فریمورک لاراول چیست ؟
Eloquent یک ابزار ORM یا همان ابزار نگاشت شیء-رابطهای به حساب میآید که امکان تعامل با پایگاه داده را برای توسعه دهندگان تسهیل میکند. در معماری MVC، مدلها با جدولهای منحصربهفرد در پایگاه داده مطابقت دارند. با استفاده از Eloquent در فریمورک لاراول، توسعه دهندگان میتوانند از بازیابی سریع، درجها و بروزرسانیهای ساده و تعاریف شهودی رابطهها اطمینان داشته باشند.
Composer در فریمورک لاراول چیست ؟
«Composer» ابزاری برای مدیریت متعلقات PHP در سطح اپلیکیشن واسطه است. ابزار Composer فریمورک لاراول، کتابخانهها، ماژولها و پلاگین یا همان افزونههای مورد نیاز اپلیکیشن لاراول را مدیریت میکند.
ماشین مجازی Homestead لاراول چیست ؟
«Homestead» محیط توسعهای به حساب میآید که با ارائه بسته از پیش ساخته شده «Vagrant»، امکان توسعه در «ماشینهای مجازی» (Virtual Machine | VM) را فراهم میکند. ماشین مجازی Homestead شامل همه چیزهای مورد نیاز برای توسعه اپلیکیشنهای فریمورک لاراول، از جمله PHP ،MySQL ،Nginx ،Composer ،Redis و بسیاری از موارد دیگر است. بنابراین، هنگام استفاده از این ابزار، دیگر نیازی نیست که توسعه دهنده هر کدام از موارد فوق را نصب کند. البته ماشین مجازی Homestead به نصب Vagrant و VirtualBox یا Parallels نیاز دارد.
بسته شروع احراز هویت لاراول چیست ؟
فریمورک لاراول شامل بستههای بسیاری میشود که به توسعه دهندگان در پیادهسازی و راهاندازی سریع کمک میکنند. ممکن است قبل از شروع کار و یادگیری این فریمورک نیاز باشد که برخی از مفاهیم مرتبط با لاراول مطالعه شوند. فریمورک لاراول شامل مجموعهای از چند «کیت استارتر» (Starter Kit) است که به توسعه دهنده در اجرای سریع عملکردهای رایج کمک میکنند. در ادامه برخی از این کیتهای استارتر فهرست و معرفی شدهاند:
- «Laravel Breeze»: یک کیت احراز هویت استارتر لاراول است. این کیت شامل روشهای احراز هویت رایج و ویژگیهای حساب کاربری کاربر از جمله ثبت نام کاربر، ورود، اعتبارسنجی ایمیلها، پیکربندی رمز عبور و تنظیم مجدد میشود. همچنین Laravel Breeze دارای بخش فرانتاند جاوا اسکریپت توسط فریمورک «Vue» نیز هست و «لایه نمایش» (View Layer) پیشفرضی دارد که از قالبهای «Blade» و «Tailwind CSS» استفاده میکنند.
- «Jetstream»: فریمورک لاراول برای استفاده ویژگیهای احراز هویت پیشرفته بیشتر، ابزار Jetstream را پیشنهاد میدهد که در ابتدا در نسخه هشتم لاراول معرفی شد. علاوه بر ویژگیهای موجود در ابزار لاراول Jetstream، ابزار Breeze ویژگیهای پیشرفته دیگری از جمله احراز هویت دو مرحلهای، مدیریت سشنها، پشتیبانی از API از طریق «Laravel Sanctum» و مدیریت اختیاری تیم را نیز ارائه میکند.
- «Fortify»: برای توسعه دهندگانی که ترجیح میدهند از روش فرانتاند احراز هویت خودشان استفاده کنند، فریمورک لاراول ابزار Fortify را پیشنهاد میدهد. Fortify ابزار احراز هویت بکاند است که به روشهای فرانتاند وابسته نیست. همچنین میتوان گفت که این ابزار موتوری برای کیت استارتر احراز هویت Jetstream به حساب میآید و شامل همه ویژگیهای احراز هویت فریمورک لاراول از جمله ثبت نام کاربر، ورود، اعتبارسنجی ایمیلها، احراز هویت دو مرحلهای و سایر موارد است. Fortify موتور اصلی برای Laravel Breeze به حساب نمیآید.
- «Laravel Socialite»: فریمورک لاراول روشهای «احراز هویت مبتنی بر رسانههای اجتماعی» (Social Media Based Authentication | OAuth) را از طریق ابزار Laravel Socialite پیشنهاد داده است.
- «Forge» و «Vapor»: این دو ابزار فریمورک لاراول هستند و برای توسعه دهندگانی پیشنهاد میشوند که قصد دارند اپلیکیشنهای خود را با کمترین پیکربندی سرور ایجاد و اجرا کنند یا در واقع قصد ایجاد و اجرا یا همان استقرار بدون سرور اپلیکیشنها را دارند. ابزار Forge لاراول امکان استقرار به وسیله ارائهدهندگان زیرساختهای مختلف همراه با حداقل تلاش را برای پیکربندی فراهم میکند. ابزار Vapor لاراول پلتفرم استقراری بدون سرور و مبتنی بر AWS است.
توسعه دهندگان میتوانند اپلیکیشن لاراول خود را از طریق وب سایت با «میزبانی خودشان» (Self Hosted) استفاده کنند. Self Hosted بودن وب سایت طراحی شده، نیازمند طراحی چندین پایگاه داده با آخرین نسخه دستورهای زبان PHP و دسترسی پروتکل SSH به سرور است. لاراول به عنوان فریمورک متن باز PHP و هم به عنوان ویژگیهای اضافه میتواند به سادگی برای ساخت اپلیکیشنها نصب شود.
معرفی برخی از بسته های فریمورک لاراول
لاراول دارای بستههای بسیاری است که هر کدام تابعهای کمکی مختلف و زیادی دارند. به طور کلی عملکردهای زیادی را میتوان با استفاده از فریمورک لاراول انجام داد. در ادامه این بخش از مبحث «فریمورک لاراول چیست» برخی از بستهها جذاب لاراول معرفی میشوند.
بسته Cashier فریمورک لاراول چیست ؟
بسته Cashier لاراول، واسطی برای خدمات پرداخت صورت حسابها از طریق Stripe و Paddle ایجاد کرده است. همچنین این بسته توابع و عملکردهای پیشرفتهای در رابطه با پرداختها ارائه میکند. به عنوان برخی از آنها میتوان استفاده از کوپن و دورههای فسخ قراردادهای مالی را نام برد.
بسته Spark فریمورک لاراول چیست ؟
میتوان گفت که بسته Cashier، موتوری برای Spark لاراول است. بسته Spark لاراول، پنل مدیریت صورت حسابی به حساب میآید که به کاربران این امکان را میدهد تا صورت حساب پرداختهای خود را ایجاد و مدیریت کنند. Spark برای ارائه خدمات پرداخت از Stripe و Paddle استفاده میکند. ابزارهای ارائهدهنده سفارشی هنوز با بسته Spark لاراول سازگار نیستند. با این حال امکان انتخاب روش فرانتاند در هنگام استفاده از بسته Spark لاراول وجود دارد.
Valet در فریمورک لاراول چیست ؟
Valet محیط توسعهای برای سیستم عامل «macOS» است که به طور پیشرفته روی سرعت و به حداقل رساندن منابع مورد استفاده کار میکند. این بسته سعی دارد که منابع را به حجم حدود ۷ مگابایت از RAM برساند. Valet قرار نیست که جایگزین کاملی برای ابزارهای Sail یا Homestead باشد و معمولاً برای کاربرانی با نیازهای خاص مناسب است که دارای محدودیت در منابع هستند. در بخش بعدی مطلب «فریمورک لاراول چیست»، نصب و راهاندازی این فریمورک را یاد میگیریم.
نصب و راه اندازی فریمورک لاراول
به دلیل اینکه فریمورک لاراول مبتنی بر PHP است، باید سرورهای تحت وبی مانند Apache یا Nginx با زبان PHP روی سیستم موردنظر نصب شوند. همچنین به یک Composer یا همان ابزار مدیریت وابستگی PHP و یک پایگاه داده هم نیاز است. برای مثال، پایگاه داده «MySQL» انتخاب خوبی برای کار با فریمورک لاراول به حساب میآید، اما پایگاه دادههای دیگری همچون PostgreSQL و SQLite نیز در آن پشتیبانی میشوند. زمانی که همه ابزارهای مورد نیاز فریمورک لاراول نصب شدند، میتوان با استفاده از دستور زیر لاراول را از Composer دانلود و نصب کرد:
composer global require laravel/installer
روش فوق از نظر فنی فقط لاراول را نصب میکند، بنابراین نیاز است که برای استفاده از فریمورک لاراول یک « laravel new
» با دستور زیر ایجاد کرد:
laravel new blog
دستور فوق، یک دایرکتوری یا همان پوشه جدید با نام «blog» ایجاد و همچنین لاراول را برای آن نصب میکند. این دایرکتوری شامل یک فایل داخلی .htaccess
میشود و تنها کاری که باید برای آن انجام داد، مطمئن شدن از فعال بودن بودن mod_rewrite
برای فایلهای .htaccess
است و آپاچی نیز باید به سمت دایرکتوری هدایت شود. از طرف دیگر، اگر توسعه دهنده قصد غیرفعال کردن آن را داشته باشد، میتواند از سرور PHP داخلی «Artisan» با استفاده از اجرای دستور زیر در دایرکتوری پروژه استفاده کند:
php artisan serve
سرور فوق یک برنامه توسعه در سرور localhost:8000
به وجود میآورد. اگر اجرای اپلیکیشن روی این سرور انجام شود، باید روی آن را روی پورت مربوطه فعال کرد یا از «تنظیم تونل SSH» یا همان «SSH Tunnelling» برای دسترسی به آن استفاده شود. اما به طور کلی این روش مناسب نیست و در نهایت از سرورهای Apache و Nginx برای کار در لاراول استفاده خواهند شد.
جمعبندی
لاراول یکی از پرکاربردترین فریموکهای PHP به حساب میآید که توسعه اپلیکیشنهای تحت وب را میتوان با استفاده از آن به سادگی انجام داد. این فریمورک بیشتر در زمینه بکاند وب سایت کاربرد دارد و یادگیری آن ساده است. با استفاده از فریمورک لاراول دیگر نیازی نیست که کدهای اپلیکیشن را از پایهایترین مفاهیم کدنویسی کرد و از ابزارهای مختلف لاراول برای توسعه استفاده میشود.
در مطلب «فریمورک لاراول چیست» سعی شد به طور جامع به همه جوانب این فریمورک از جمله ویژگیها، مزایا، کاربردها و روشهای یادگیری آن پرداخت و علاقهمندان و دانشجویان را تا حد زیادی با این فریمورک بسیار کاربردی و محبوب آشنا کرد. همچنین برای آشنایی بیشتر افراد با برنامه نویسی و فریمورک لاراول برخی از دورههای آموزشی مرتبط با لاراول تم آف نیز در این مطلب معرفی شدهاند.