هرآنچه باید درباره فریم ورک لاراول (Laravel) بدانید
در سالهای اخیر توسعه اپلیکیشنهای وب و سایتهای مختلف تا اندازه زیادی تسهیل شده است، طوری که حتی فنیترین چالشها به کمک محصولات موجود پیچیدگی خود را از دست دادهاند. در این میان، PHP یکی از باسابقهترین زبانهای توسعه وب به شمار میآید و فریمورک لاراول از محبوبترین ابزارهای آن است.
در واقع، انتخاب فریمورک مطلوب یکی از دشوارترین جوانب مراحل ابتدایی توسعه پروژه به حساب میآید. هرچند که شاید هر تیمی چند معیار کلی از قبیل هزینه توسعه، تجربه کار با یک فریمورک خاص، محبوبیت فریمورک و غیره داشته باشد، لیکن لازم است چندین عامل دیگر را هم در هنگام تصمیمگیری در نظر بگیرید.
زبان برنامهنویسی PHP چند فریمورک با قابلیتهای فنی مختلف دارد که در میان آنها میتوانیم به لاراول، سیمفونی، فالکون، زند، اسلیم و غیره اشاره کنیم. با وجود این، لاراول جایگاه نخست را در میان فریمورکهای MVC پی اچ پی دارد. لاراول همچنین یکی از مخازن حرفهای در GitHub است که حدود 45 هزار ستاره دارد. اما دلیل این محبوبیت بالا چیست و چطور به تمام نیازهای شما در حوزه اپلیکیشن وب پاسخ میدهد؟ در این مطلب قصد داریم هرآنچه را که لازم است درباره فریمورک Laravel بدانید، با شما در میان بگذاریم. پس توصیه میکنیم تا پایان با ما همراه باشید تا شناخت کافی را از این فریمورک محبوب به دست آورید.
فریمورک لاراول (Laravel) چیست؟
لاراول یک فریمورک اپلیکیشن وب با سینتاکسی گویا و رسا است. این یک فریمورک وب منبع باز PHP است که توسط تیلور اتول (Taylor Otwell) تولید شد. در واقع، هدف از تولید لاراول ارائه جایگزینی پیشرفته برای CodeIgniter بود، هرچند که الگوهای ساختاری آن غالباً بر اساس Symfony هستند.
بعد از انتشار نسخه سوم فریمورک لاراول محبوبیت آن دو چندان شد. در این ورژن ویژگیهایی مانند رابط خط فرمان (به نام Artisan)، پشتیبانی از سیستم پایگاه داده و کوچها به این فریمورک افزوده شد. با توجه به اینکه امروزه توسعه باید تجربهای لذتبخش و خلاقانه باشد تا بتواند واقعاً رضایتبخش باشد، لاراول تلاش میکند سختی توسعه را از طریق تسهیل وظایف عمومی مورد استفاده از اغلب پروژههای وب حذف کند.
لاراول یک محیط توسعه بسیار کاربردی فراهم میآورد و اپلیکیشنهای آن نه تنها از مقیاسپذیری بالایی برخوردارند، بلکه پایگاه کدهای آن نیز به سادگی قابل نگهداریاند. علاوه بر این، توسعهدهندگان میتوانند، به کمک سیستم پکیجینگ و مدیریت وابستگی نیرومند این فریمورک، ویژگیهای کاربردی را بدون هیچ محدودیتی به اپلیکیشنهای خود بیافزایند.
علاوه بر این، لازم است به این نکته هم اشاره کنیم که توسعه دهندگان لاراول در میان پرمتقاضیترین توسعه دهندگان وب و اپلیکیشن وب قرار دارند. بنابراین، این فریمورک هم شما را در انجام امور و وظایف مربوط به این حوزه توانا میسازد و هم شما را به بازار کار بزرگتری معرفی میکند.
ساختار فریمورک لاراول (Laravel) چیست؟
در این بخش ساختار فریمورک لاراول را از دو جهت مورد بررسی قرار میدهیم: 1) ساختار MVC لاراول و 2) ساختار پروژه PHP لاراول. در ادامه شما را با هرکدام از ساختارهای یادشده بیشتر آشنا میکنیم.
ساختار MVC لاراول
لاراول از معماری MVC استفاده میکند. این ساختار یک الگوی طراحی معماری است که در توسعه سریعتر اپلیکیشن وب به شما کمک خواهد کرد. در واقع، MVC سرواژه کلمات Model-View-Controller است که میتوانیم آنها را به شکل پایین تعریف کنیم:
Model: مدل دادههای مورد استفاده اپلیکیشن وب را مدیریت میکند. مدل برای تعیین ساختار دادهها در نظر گرفته شده است، یعنی اپلیکیشن را به منظور انعکاس آیتمهای افزوده شده بهروزرسانی میکند.
View: ویو به نمایش دادهها به کاربر کمک میکند، یعنی برای تعریف رابط کاربری در نظر گرفته شده است.
Controller: کنترلر (کنترل کننده) به منظور ایجاد داده برای ویو با مدل تعامل میکند. به این صورت که حاوی منطق کنترل است. در واقع، کنترلر بهروزرسانیها را از ویو دریافت کرده و سپس به مدل اعلام میکند تا آیتمها را اضافه کند.
ساختار پروژه PHP لاراول
ساختار پروژه در فریمورک Laravel شامل دایرکتوریها، زیردایرکتوریها و فایلها میشود. البته اشاره به این نکته لازم است که دایرکتوری را با نام پوشه (فولدر) نیز میشناسند.
برای مشاهده ساختار دایرکتوری ریشهای پروژه لاراول کافی است پروژه خود را از File Explorer باز کنید. در این صورت، شکلی مشابه آنچه در پایین آمده است را مشاهده خواهید کرد.
در اینجا فهرستی از مهمترین دایرکتوریها، زیردایرکتوریها و فایلهای یک پروژه معمولی در فریمورک لاراول را تهیه کردهایم. توجه کنید که هر کاربر لاراول لازم است با این فهرست آشنایی کافی داشته باشد.
app directory: این یکی از مهمترین دایرکتوریهای ریشه به شمار میآید. در واقع، app directory حاوی کدهای منبع اپلیکیشن وب است و خود شامل
چند زیردایرکتوری و فایل User.php میشود. زیردایرکتوریهای app directory عبارتند از:
- console directory: این دایرکتوری شامل artisan commandهای مورد نیاز لاراول است.
- exceptions directory: این دایرکتوری حاوی exception handlerها است.
- http directory: این دایرکتوری شامل زیردایرکتوریهایی برای Controllerها و Middlewareها میشود.
- providers directory: این دایرکتوری تمام service providerها را دربر میگیرد.
- فایل user.php: این فایل یک مدل پیشفرض است که توسط لاراول تعبیه شده است.
Bootstrap directory: این دایرکتوری حاول فایلهایی است که با bootstrap اپلیکیشن PHP لاراول مرتبط هستند.
config directory: این دایرکتوری حاول چندین فایل configuration است که برای اپلیکیشن PHP لاراول لازم هستند.
database directory: این دایرکتوری فایلهای مرتبط با پایگاه داده را دربر میگیرد و شامل زیردایرکتوریهای پایین و فایل .gitignore میشود.
- factories directory: این دایرکتوری بسیاری از رکوردهای داده را تولید میکند.
- migrations directory: این دایرکتوری حاول فایلهای مرتبط با database migrations است.
- seeds directory: این دایرکتوری classهای مورد استفاده پایگاه داده آزمایش واحد را دربر میگیرد.
public directory: این دایرکتوری شامل فایلهایی میشود که به راهاندازی اپلیکیشن PHP لاراول کمک میکنند.
resource directory: این دایرکتوری فریمورک لاراول حاوی فایلهای HTML، فایلهای CSS، فایلهای JavaScript و تمپلیتهای blade است. زیردایرکتوریهای پایین در این دایرکتوری قرار دارند:
- js directory: این دایرکتوری حاوی فایلهای مرتبط با JavaScript است.
- lang directory: این دایرکتوری شامل فایلهایی برای بومیسازی و درونیسازی (localization and internalization) میشود.
- saas directory: این دایرکتوری حاوی فایلهایی مانند فایلهای SCSS است.
- views directory: این دایرکتوری فایلهای HTML یا تمپلیتهایی را دربر میگیرد که به نمایش داده به کاربر کمک میکنند.
routes directory: این دایرکتوری شامل تمام routes definitionهای اپلیکیشن PHP لاراول میشود.
storage directory: این دایرکتوری حاول فایلهایcache ، فایلهای session و غیره است.
tests directory: این دایرکتوری شامل فایلهای test از قبیل فایلهای تست واحد میشود.
vendor directory: این دایرکتوری تمام composer dependency packageها را دربر میگیرد.
.env files: این فایل شامل متغیرهای محیطی (environmental variables) میشود.
Composer.json file: این فایل در واقع یک فایل configuration است که وابستگیها را تعیین میکند.
Package.json file: این فایل مشابه composer.json است اما در frontend کاربرد دارد.
مزایای فریمورک لاراول (Laravel) چیست؟
در اینجا تعدادی از ویژگیها و مزایای استفاده از فریمورک لاراول را بررسی میکنیم. به این صورت میتوانید دلیل محبوبیت بالای این فریمورک را بهتر درک کنید.
پشتیبانی از MVC و رویکرد شیءگرا
اولین و بهترین مزیت استفاده از لاراول این است که از الگوی ساختاری مبتنی بر مدل، ویو و کنترلر پیروی میکند. به این ترتیب خواهید توانست از سینتاکسی زیبا و خصوصیت شیءگرایی بهرهمند شوید.
هویتسنجی و اعتبارسنجی توکار
فریمورک Laravel یک پیکربندی آماده مصرف (out-of-the-box configuration) را برای سیستم هویتسنجی و اعتبارسنجی فراهم میآورد. به این معنی که اپلیکیشن شما در تنها چند فرمان artisan به قابلیت هویتسنجی و اعتبارسنجی ایمنی مجهز خواهد شد.
سیستم پکیجینگ
سیستم پکیجینگ با چند پشتیبانی نرمافزاری یا کتابخانهای که به اپلیکیشن وب در خودکارسازی فرایندها کمک میکنند، سروکار دارد. لاراول از یک سازنده (composer) به عنوان مدیر وابستگی استفاده میکند که تمام اطلاعات مورد نیاز برای مدیریت پکیجها را مدیریت میکند. در واقع، پکیجها روشی موثر برای تسریع توسعه و تامین کارکردهای آماده مصرف مورد نیاز به شمار میآیند. نوار اشکالزدایی (debug) و بخش help محیط توسعه یکپارچه (IDE) لاراول تنها تعدادی از بهترین پکیجهای لاراول هستند.
سیستم چند فایلی
لاراول به صورت توکار از سیستم ذخیرهسازی ابری از قبیل Amazon S3 و Rack Space Cloud Storage و ذخیرهسازی محلی (local storage) پشتیبانی میکند. همچنین، در این فریمورک تغییر از یک گزینه ذخیرهسازی به گزینه دیگر فرایند بسیار سادهای است، چون API برای هرکدام از سیستمها یکسان میماند. شما میتوانید از هر سه سیستم در یک اپلیکیشن استفاده کنید؛ به این صورت، خواهید توانست فایلهایی را از موقعیتهای مختلف مورد استفاده قرار دهید.
کنسول آرتیزان
فریمورک لاراول رابط خط فرمان خاص خود را دارد که به نام آرتیزان (Artisan) شناخته میشود. کاربردهای معمول آرتیزان شامل انتشار پکیج داراییها (package assets)، مدیریت کوچهای پایگاه داده، تولید کد boilerplate برای کنترلرها، مدلها و کوچهای جدید میشود. این ویژگی در واقع توسعه دهنده را از ایجاد کدهای مخصوص اسکلتبندی رها میسازد. علاوه بر این، میتوانید کاربرد و قابلیتهای آرتیزان را با اجرای فرمانهای شخصیسازی شده جدید گسترش بدهید.
Eloquent ORM
Eloquent ORM عبارت است از پیادهسازی ORM توکار لاراول. اگر لاراول را با سایر فریمورکهای موجود مقایسه کنیم، میبینیم که این فریمورک از بهترین Object-relational Mapper برخوردار است. به این صورت، با استفاده از سینتاکس لاراول، امکان تعامل با اشیای پایگاه داده و روابط پایگاه دادهای را خواهید داشت.
موتور قالبسازی (Templating Engine)
فریمورک Laravel به موتور قالبسازی توکار خود به نام Blade Template Engine مجهز شده است. این موتور یک یا چند تمپلیت را با مدل دادهای ترکیب میکند تا ویوها تولید شوند.
زمانبندی وظایف
زمانبندی در Laravel 5.0 معرفی شد و ویژگیای مزید بر استفاده از خط فرمان آرتیزان برای زمانبندی وظایف اجرایی دورهای به شمار میآید.
رویدادها و انتشار (ٍEvents and Broadcasting)
لاراول مفهومی به نام انتشار دارد که در اپلیکیشن وبهای مدرن برای پیادهسازی دادهها در لحظه، نمایش فیدها و غیره مورد استفاده قرار میگیرد. به این صورت، فریمورک لاراول امکان اشتراکگذاری یک رویداد واحد در بین سمت سرور و سمت مشتری را برایتان فراهم میآورد.
کاربرد فریمورک لاراول (Laravel) چیست؟
خوب است به این نکته اشاره کنیم که بیش از 7 هزار شرکت در سراسر جهان برای امور مربوط به اپلیکیشن وب خود از لاراول استفاده میکنند و بیش از 170 هزار سایت روی این فریمورک اجرا میشوند. در میان شرکتهای مشهوری که از لاراول استفاده میکنند میتوانیم به Freedom Financial Network، Bank of Texas، GitHub، BBC، Pfizer و غیره اشاره کنیم. همانطور که احتمالاً حدس میزنید، کسبوکارهایی که از لاراول استفاده میکنند از صنایع مختلفی مانند آی تی، امور مالی، توریستی، سرگرمی و غیره هستند. بنابراین، با یک فریمورک بکاند چندمنظوره روبرو هستید که میتواند در انجام اموری مانند پایین به شما کمک کند:
- طراحی صفحات وب ایستا و پویا
- تولید اپلیکیشنهای تکصفحهای (SPAs) و چندصفحهای (MPAs)
- طراحی سایتهای تجارت الکترونیک
- اپلیکیشنهای سطح سازمانی (enterprise-level)
- اپلیکیشنهای وب قابل حمل، مانند انجمنها، پرتالهای کاریابی، خبری و غیره
- سیستمهای مدیریت محتوا
- سایتهای شبکههای اجتماعی و غیره
در واقع، لاراول کاربردهای بسیار گوناگونی دارد که موارد بالا تنها تعدادی از آنها هستند.
چطور از فریمورک لاراول (Laravel) استفاده کنیم؟
اگر میخواهید از فریمورک Laravel استفاده کنید، لازم است مراحل پایین را انجام دهید:
مرحله اول: PHP و Web Server را نصب کنید
این فریمورک در PHP اجرا میشود، پس اولین کاری که باید انجام دهید عبارت است از نصب PHP و Web Server روی کامپیوتر مورد نظر. بهترین وب سرورهایی که میتوانیم برای این منظور توصیه کنیم شامل Apache و Nginx میشود. در واقع، اینها محبوبترین وب سرورهای منبع بازی هستند که برنامهنویسان از آن استفاده میکنند.
مرحله دوم: Composer، Dependency Manager و Database را نصب کنید
پس از نصب PHP و وب سرور، به composer و مدیر وابستگی (برای PHP) و پایگاه داده نیاز دارید. تعدادی از بهترین پایگاههای داده موجود عبارتند از MySQL، PostgreSQL و SQLite.
مرحله سوم: لاراول را نصب کنید
در مرحله بعدی لازم است لاراول را از Composer خود نصب کنید. بنابراین، composer را باز کرده و فرمان پایین را اجرا کنید:
composer global requires laravel/installer
همچنین، برای تکمیل نصب لاراول، فرمان پایین را اجرا کنید:
laravel new blog
این فرمان یک دایرکتوری جدید به نام blog تولید کرده و لاراول را در آن نصب میکند.
جمعبندی
فریمورک لاراول محبوبترین فریمورک PHP موجود است که کاربران بسیار زیادی در سراسر جهان دارد. بنابراین، در این مطلب تلاش کردیم تا هرآنچه را که برای آشنایی با این فریمورک نیاز دارید با شما در میان بگذاریم. با توجه به توضیحاتی که در اینجا درباره فریمورک Laravel داده شد، اکنون میتوانید کار خود را با آن شروع کنید و از مزایای این فریمورک برخوردار شوید.