آموزش پکیج Laravel Sail به همراه مثال

روش رایجی که برای نصب و راه‌اندازی یک اپلیکیشن لاراول در سیستم شخصی توسعه دهندگان استفاده می‌شود، عبارت است از: نصب یک وب سرور مثل Apache یا Nginx، نصب PHP و افزونه‌های مختلف آن، نصب MySql و هم‌چنین، در صورت نیاز، تعداد زیادی نرم‌افزار دیگر بر روی سیستم عامل. در این روش، توسعه دهندگان معمولا از نرم افزارهای شبیه ساز سرور مثل Wamp یا Xampp بر روی سیستم شخصیشان استفاده می‌کنند. اما از لاراول 8 به بعد و با استفاده از پکیج Laravel Sail، توسعه‌دهندگان می‌توانند بدون نیاز به نصب هیچ کدام از نرم‌افزارهای فوق بر روی سیستم عامل، اپلیکیشن لاراول خود را راه اندازی کرده و توسعه دهند.

پکیج Laravel Sail یک CLI یا Command Line Interface را برای تعامل با محیط توسعه‌ی داکر (Docker) که به صورت پیش‌فرض در لاراول وجود دارد، فراهم می‌کند. نکته‌ی مهم دیگر این است که با وجود آن که Laravel Sail بر روی داکر ایجاد شده است، برای استفاده از آن، به هیچ گونه دانش قبلی در رابطه با داکر نیاز ندارید. با استفاده از Laravel Sail، یک محیط توسعه‌ی لوکال کامل، در اختیار شما قرار خواهد گرفت.

Laravel Sail از یک فایل docker-compose.yml و اسکریپت Sail که در مسیر vendor/bin/sail پروژه قرار دارد، استفاده می‌کند. اسکریپت Sail یک CLI را به همراه چند متد کاربردی، برای تعامل با کانتینرهای داکر که در فایل docker-compose.yml تعریف شده‌اند، فراهم می‌آورد. در این مقاله قصد داریم نحوه‌ی نصب و راه‌اندازی یک پروژه‌ی لاراول را با استفاده از Laravel Sail، به شما آموزش دهیم. پس تا انتهای این مقاله با ما همراه باشید.

نیازمندی‌های اولیه برای شروع به کار با پکیج Laravel Sail

برای شروع یادگیری Laravel Sail در لاراول، به دانش کافی در زمینه‌ی لاراول نیاز دارید. هم‌چنین برای استفاده از این پکیج بر روی ویندوز، باید WSL2 یا Windows Subsystem for Linux ورژن 2 را بر روی ویندوز نصب کنید. برای نصب این ابزار، به ویندوز 10، ورژن 1903 و بیلد 18362 و یا بالاتر نیاز دارید.

نکته: برای تشخیص ورژن ویندوز، کافی است دستور ver را در CMD ویندوز وارد کنید.

نصب داکر بر روی ویندوز

ابتدا باید داکر و Docker Compose را بر روی سیستم عامل خود نصب کنید. اگر سیستم عامل شما ویندوز است، به صفحه‌ی Docker Desktop for Windows در وب‌سایت داکرهاب مراجعه کنید و طبق تصویر زیر، بر روی گزینه‌ی Get Docker در سمت راست تصویر کلیک کنید تا فایل Installer داکر برای شما دانلود شود:

نصب داکر

سپس فایل را اجرا کرده و  داکر را بر روی ویندوز نصب کنید. با نصب این فایل، هم داکر و هم Docker Compose بر روی سیستم عامل شما نصب خواهد شد. پس از نصب، داکر به صورت خودکار راه‌اندازی می‌شود. آیکون وال در قسمت Notificationها در Taskbar ویندوز، مشخص کننده‌ی فعال بودن یا نبودن داکر است. با وارد کردن دستور docker version در CMD ویندوز، می‌توانید ورژن داکر نصب شده را مشاهده کنید. از محیط گرافیکی داکر نیز که همراه با داکر و Docker Compose نصب می‌شود، می‌توانید استفاده کنید:

آموزش پکیج Laravel Sail - داکر بر روی ویندوز

نصب پکیج Laravel Sail

با استفاده از دستور زیر می‌توانید پکیج Laravel Sail را روی پروژه‌ی لاراول خود نصب کنید. قبل از آن، مطمئن شوید که می‌توانید در محیط توسعه‌ی لوکال پروژه‌ی خود، وابستگی‌های Composer را نصب کنید:

composer require laravel/sail --dev

پس از نصب پکیج، دستور Artisan زیر را اجرا کنید. این دستور، فایل docker-compose.yml مربوط به پکیج را مستقیما در پوشه‌ی پروژه، Publish می‌کند:

php artisan sail:install

اکنون می‌توانید با استفاده از دستور زیر، Sail را راه‌اندازی کنید:

./vendor/bin/sail up

Bash Alias

به صورت پیش‌فرض، دستورات Sail به وسیله‌ی اسکریپت vendor/bin/sail که در تمام پروژه‌های تازه‌ی لاراول موجود است، فراخوانی می‌شوند:

./vendor/bin/sail up

برای جلوگیری از تکرار مداوم vendor/bin/sail برای اجرای هر دستور، می‌توانید یک Bash Alias تعریف کنید که به شما اجازه می‌دهد تا دستورات Sail را راحت‌تر اجرا کنید:

alias sail='bash vendor/bin/sail'

اکنون می‌توانید دستورات Sail را به سادگی و فقط با نوشتن sail اجرا کنید:

sail up

راه‌اندازی و متوقف کردن Sail

فایل docker-compose.yml مربوط به پکیج، چند کانتینر داکر متنوع را تعریف می‌کند که به شما کمک می‌کنند تا اپلیکیشن لاراول موردنظر خود را ایجاد کنید. هرکدام از این کانتینرها به عنوان یک سرویس در فایل docker-compose.yml تعریف شده است. قبل از اجرای Sail، مطمئن شوید که هیچ وب سرور یا دیتابیس دیگری روی سیستم لوکال شما در حال اجرا نباشد. برای راه‌اندازی همه‌ی کانتینرها، از دستور زیر استفاده کنید:

sail up

در این حالت با بستن محیط CLI که دستور را در آن اجرا کرده‌اید، تمام کانتینرها متوقف می‌شوند. برای راه‌اندازی کانتینرها در پس‌زمینه، Sail را در حالت Detached اجرا کنید:

sail up -d

زمانی که کانتینرها راه‌اندازی شدند، از طریق آدرس http://localhost می‌توانید در مرورگر خود، به پروژه دسترسی داشته باشید.

برای متوقف کردن کانتینرها می‌توانید کلیدهای Ctrl و C را همزمان، در محیط CLI که دستور up را در آن اجرا کرده‌اید، بفشارید. اگر کانتینرها را در پس‌زمینه راه‌اندازی کرده‌اید، می‌توانید از دستور زیر استفاده کنید:

sail down

اجرای دستور

زمانی که از Laravel Sail استفاده می‌کنید، اپلیکیشن شما در یک کانتینر داکر در حال اجراست و از سیستم لوکال شما جدا شده است. در نتیجه، به شیوه‌ی قبل، نمی‌توانید دستورات موردنظرتان را در محیط Command Line اجرا کنید. Sail روش مناسبی را برای اجرای دستورات دلخواهتان مانند دستورات PHP، Artisan، Composer و NPM / Node فراهم آورده است.

اجرای دستورات PHP

برای اجرای دستورات PHP، باید به شیوه‌ی زیر عمل کنید. برای مثال:

sail php --version 
sail php script.php

اجرای دستورات Composer

برای اجرای دستورات Composer، برای مثال نصب پکیج Sanctum (برای آشنایی با پکیج Sanctum مقاله‌ی “آموزش احراز هویت با API در لاراول” را مطالعه کنید)، به شیوه‌ی زیر عمل کنید:

sail composer require laravel/sanctum

اجرای دستورات Artisan

برای اجرای دستورات Artisan، مثلا دستور queue:work، به شیوه‌ی زیر عمل کنید:

sail artisan queue:work

اجرای دستورات Node / NPM

برای اجرای دستورات Node / NPM، باید به شیوه‌ی زیر عمل کنید. برای مثال:

sail node --version 
sail npm run prod

دیتابیس‌ها

در پکیج Laravel Sail، دو کانتینر برای دیتابیس‌های MySQL و Redis در نظر گرفته شده‌اند. پس بیایید هر دو مورد را بررسی کنیم. برای دسترسی به دیتابیس‌های اپلیکیشن در سیستم لوکال، می‌توانید از یک نرم‌افزار مدیریت دیتابیس گرافیکی مثل TablePlus که نصب و استفاده از آن بسیار ساده است، استفاده کنید.

MySQL

فایل docker-compose.yml مربوط به Laravel Sail، یک کانتینر را نیز برای MySQL در نظر گرفته است. این کانتینر از یک Docker Volume استفاده می‌کند تا اطلاعات دیتابیس، حتی زمانی که کانتینرها متوقف یا Restart می‌شوند، باقی بمانند. علاوه بر این، زمانی که MySQL Container راه‌اندازی می‌شود، این کانتینر بررسی می‌کند که حتما یک دیتابیس هم‌نام با مقدار متغیر محیطی DB_DATABASE وجود داشته باشد. برای برقراری ارتباط با MySQL Container، مقدار متغیر محیطی DB_HOST در فایل env. اپلیکیشن، باید برابر با mysql باشد. به صورت پیش‌فرض، دیتابیس MySQL در پورت 3306 در Localhost قابل دسترسی است.

Redis

فایل docker-compose.yml مربوط به پکیج، یک کانتینر را برای Redis در نظر گرفته است. این کانتینر نیز از یک Docker Volume استفاده می‌کند تا اطلاعات دیتابیس، حتی زمانی که کانتینرها متوقف یا Restart می‌شوند، باقی بمانند. برای برقراری ارتباط با Redis Container، مقدار متغیر محیطی REDIS_HOST در فایل env. اپلیکیشن، باید برابر با redis باشد. به صورت پیش‌فرض، دیتابیس Redis  در پورت 6379 در Localhost قابل دسترسی است.

پیش‌نمایش ایمیل‌ها

فایل docker-compose.yml مربوط به پکیج، هم‌چنین یک کانتینر را برای MailHog در نظر گرفته است. MailHog ابزاری برای تست ایمیل‌ها در محیط لوکال است. این ابزار، یک رابط وب مناسب را برای پیش‌نمایش پیام‌های ایمیل در مرورگرتان فراهم می‌آورد. زمانی که از Sail استفاده می‌کنید، هاست پیش‌فرض MailHog، برابر با mailhog و از طریق پورت 1025 نیز در دسترس است:

MAIL_HOST=mailhog 
MAIL_PORT=1025

برای دسترسی به رابط وب MailHog، به آدرس http://localhost:8025 در مرورگر خود مراجعه کنید.

اشتراک‌گذاری سایت

گاهی اوقات ممکن است نیاز داشته باشید تا سایتی که ایجاد کرده‌اید را به صورت عمومی به اشتراک بگذارید تا برای مثال، همکارتان پیش‌نمایش آن را مشاهده کند. برای انجام این کار باید از دستور share استفاده کنید:

sail share

پس از اجرای این دستور، یک URL تصادفی برای شما ایجاد می‌شود که می‌توانید برای دسترسی به اپلیکیشنی که ایجاد کرده‌اید، از آن استفاده کنید.

 

جمع بندی:

در این مقاله از مجموعه مقالات آموزش لاراول، به آموزش پکیج Laravel Sail پرداختیم و ویژگی‌های جذاب این پکیج را با هم مرور کردیم. Laravel Sail کار بر روی اپلیکیشن لاراول جدیدتان را بسیار لذت‌بخش‌تر و راحت‌تر می‌کند. تنها کاری که نیاز است انجام دهید نصب داکر و Docker Compose بر روی سیستم است. سپس، با وجود Laravel Sail، نیازی به کانفیگ سرور یا نصب نرم‌افزارهای مختلف بر روی سیستم را نخواهید داشت. همه‌ی آن‌ها را Laravel Sail برای شما انجام خواهد داد.

امیدوار هستیم که آموزش پکیج Laravel Sail، برای شما مفید بوده باشد. خوشحال می‌شویم نظرات، تجربیات و سوالات خود را با ما و سایر کاربران سون لرن به اشتراک بگذارید.

اگر به یادگیری بیشتر لاراول علاقه داری می‌توانی در دوره آموزشی لاراول کاربردی (بسته پروژه محور) شرکت کنی، این دوره شامل ۱۲ پروژه کاربردی و پر استفاده در دنیای واقعی است، که تمامی پروژه‌ها به صورت کامل برنامه‌ نویسی خواهند شد، تا دانشجو بتواند با روند ایجاد و تکمیل پروژه به صورت کامل آشنا شود.

 
ارسال دیدگاه
ما همه سوالات و دیدگاه ها رو می خونیم و پاسخ میدیم
۸ دیدگاه
houman ۱۰ شهریور ۱۴۰۰، ۱۲:۰۷
برای اشتراک گذاری پروژه باید حتما طرف مقابلم داکر رو نصب داشته باشه؟
نازنین کریمی مقدم ۱۴ شهریور ۱۴۰۰، ۰۰:۵۸
درود
برای اجرای laravel sail و تغییر در کدها در دایرکتوری لوکال نیاز به بستر داکر هست،
اما اگر خروجی رو در یک بستر آنلاین قرار بدید (مثل یک سایت روی هاست) نیازی به داکر نیست.
houman ۱۰ شهریور ۱۴۰۰، ۱۲:۰۵
خیلی ممنون بابت مقاله ی خوبتون
عبارت ها بسیار عالی حرفه ای ترجمه شده بودن و درکل درک کردن متن خیلی آسون بود
نازنین کریمی مقدم ۱۳ شهریور ۱۴۰۰، ۱۷:۲۲
درود
خوشحالیم مقاله براتون مفید بوده.
احمد ۱۰ اردیبهشت ۱۴۰۰، ۱۵:۰۹
عالی بود
بابک تجلی ۱۰ اسفند ۱۳۹۹، ۰۱:۱۴
سلام، می خواستم بدانم بعد از تنظیم کردن Laravel Sail، برای ارسال به نفری دیگر و یا Upload آن در Host، مشکلی بوجود نمی آید؟
اگر نیاز به تغییراتی دارد، ممنون می شوم راهنمایی بفرمایید.
نازنین کریمی مقدم ۱۷ اسفند ۱۳۹۹، ۱۰:۳۱
درود.
قاعدتا چون با سیستم داکر کار میکنه، مشکل خاصی به وجود نمیاد و تنظیمات خاصی هم نمیخواد.
cryptodev ۳۰ بهمن ۱۳۹۹، ۱۹:۴۴
درود بر شما
بسیار ساده، کاربردی و مفید