مقدمه
خب، آماده شو برای آشنایی با لاراول، یه فریمورک وب که قراره عاشقش بشی! یه ساختار و پایه محکم برای ساختن برنامههای وب فوقالعاده، طوری که تو فقط روی خلاقیتت تمرکز کنی و ما بقیه کارها رو انجام بدیم. فکرشو کن، دیگه لازم نیست سر جزئیات ریز و درشت عرق بریزی!
لاراول یه تجربه توسعهدهندگی بینظیر رو برات فراهم میکنه، با کلی امکانات جذاب مثل تزریق وابستگی (که دیگه لازم نیست کلی کد تکراری بنویسی!), یه لایه انتزاعی پایگاه داده که کار با دیتابیس رو مثل آب خوردن میکنه، صفها و وظایف زمانبندی شده (خداحافظ کدهای پیچیده!), تستهای واحد و ادغام (تا خیالت از کیفیت کار راحت باشه!) و کلی چیزای دیگه.
چه تازه کار باشی چه یه برنامهنویس حرفهای، لاراول باهات همراهه و کمکت میکنه تا به اوج برسی. بیا با هم یه برنامه وب فوقالعاده بسازیم! منتظریم ببینیم چه شاهکاری خلق میکنی!
چرا لاراول؟
برای ساختن یه برنامه وب، کلی ابزار و فریمورک مختلف وجود داره، اما ما معتقدیم لاراول بهترین انتخاب برای ساختن برنامههای وب مدرن و کامله.
فریمورک پیشرفته:
ما به لاراول میگیم یه فریمورک “پیشرفته”. یعنی با تو رشد میکنه! اگه تازه وارد دنیای برنامهنویسی وب شدی، مستندات، راهنماها و آموزشهای ویدیویی فراوان لاراول کمکت میکنن تا بدون گیج شدن، کار رو یاد بگیری.
اگه یه برنامهنویس با تجربه هستی، لاراول ابزارهای قدرتمندی مثل تزریق وابستگی، تست واحد، صفها، رویدادهای بلادرنگ و خیلی چیزای دیگه رو در اختیارت میذاره. لاراول برای ساختن برنامههای وب حرفهای بهینه شده و آمادهی مدیریت حجم بالای کاره.
فریمورک مقیاسپذیر:
لاراول فوقالعاده مقیاسپذیره. به لطف ماهیت مقیاسپذیر PHP و پشتیبانی داخلی لاراول از سیستمهای کش توزیعشده و سریع مثل Redis، مقیاسبندی افقی با لاراول خیلی آسونه. در واقع، برنامههای لاراول به راحتی مقیاسبندی شدهاند تا ماهانه صدها میلیون درخواست رو مدیریت کنند.
نیاز به مقیاسبندی خیلی زیاد داری؟ پلتفرمهایی مثل Laravel Vapor بهت اجازه میدهن برنامه لاراول خودتو با مقیاس تقریباً نامحدود روی جدیدترین تکنولوژی سرورلس AWS اجرا کنی.
یه فریمورک اجتماعی:
لاراول بهترین پکیجهای اکوسیستم PHP رو با هم ترکیب کرده تا قدرتمندترین و کاربرپسندترین فریمورک رو ارائه بده. علاوه بر این، هزاران برنامهنویس با استعداد از سراسر دنیا به این فریمورک کمک کردهاند. کی میدونه، شاید حتی خودت هم یه کمککنندهی لاراول بشی!
<pre><code class="language-css">p { color: red }</code></pre>
ساخت یک برنامه لاراول
نصب PHP و نصبکننده لاراول
قبل از ایجاد اولین برنامه لاراول خود، مطمئن شوید که دستگاه محلی شما PHP، Composer و نصبکننده لاراول را نصب کرده است. علاوه بر این، باید Node و NPM یا Bun را نصب کنید تا بتوانید داراییهای فرانتاند برنامه خود را کامپایل کنید.
اگر PHP و Composer را روی دستگاه محلی خود نصب نکردهاید، دستورات زیر PHP، Composer و نصبکننده لاراول را روی macOS، Windows یا Linux نصب میکنند:
macOS:
<code class="language-php">/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.3)"</code>
Windows PowerShell:
# دستوری برای ویندوز در اینجا قرار میگیرد. (این دستور در متن اصلی وجود ندارد.)
Linux:
/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.3)"
پس از اجرای یکی از دستورات بالا، باید جلسه ترمینال خود را مجدداً راهاندازی کنید. برای بهروزرسانی PHP، Composer و نصبکننده لاراول پس از نصب آنها از طریق php.new، میتوانید دستور را در ترمینال خود مجدداً اجرا کنید.
اگر قبلاً PHP و Composer را نصب کردهاید، میتوانید نصبکننده لاراول را از طریق Composer نصب کنید:
composer global require laravel/installer
ساخت یک اپلیکیشن جدید خب رفیق! حالا که PHP و Composer و Laravel installer رو نصب کردی، وقتشه یه اپلیکیشن باحال با Laravel بسازی. موقع نصب، Laravel ازت میپرسه که چه testing framework و database و starter kit میخوای استفاده کنی.
برای شروع این دستور رو بزن:
<code class="language-php">laravel new example-app</code>
وقتی اپلیکیشن ساخته شد، میتونی سرور توسعه محلی Laravel، queue worker و سرور توسعه Vite رو با این دستور Composer راهاندازی کنی:
cd example-app npm install && npm run build composer run dev
بعد از اینکه سرور راه افتاد، میتونی اپلیکیشنت رو توی مرورگر با آدرس http://localhost:8000 ببینی. حالا آمادهای که قدمهای بعدی رو توی دنیای Laravel برداری. راستی، احتمالاً میخوای یه database هم تنظیم کنی.
اگه میخوای با یه سرعت خوب شروع کنی، میتونی از starter kitهای ما استفاده کنی. اینها بهت یه ساختار آماده برای احراز هویت frontend و backend میدن.
تنظیمات اولیه همه فایلهای تنظیمات Laravel توی پوشه config قرار دارن. نگران نباش، همه گزینهها توضیح داده شدن، پس راحت میتونی فایلها رو بخونی و با گزینههای موجود آشنا بشی.
خبر خوب اینه که Laravel تقریباً هیچ تنظیمات اضافهای نمیخواد و میتونی همینجوری شروع کنی به کد زدن! ولی اگه خواستی، یه نگاهی به فایل config/app.php بنداز. توش چندتا گزینه مثل timezone و locale هست که شاید بخوای برای اپلیکیشنت تغییرشون بدی.
تنظیمات بر اساس محیط ببین داستان چیه: خیلی از تنظیمات Laravel بسته به اینکه داری روی کامپیوتر خودت کار میکنی یا روی سرور اصلی، ممکنه فرق کنه. برای همین، یه فایل به اسم .env داریم که توی پوشه اصلی پروژهته و تنظیمات مهم رو توش مینویسیم.
یه نکته مهم: هیچوقت فایل .env رو نباید به source control (مثل Git) اضافه کنی! چرا؟ چون:
- هر برنامهنویس/سرور ممکنه تنظیمات متفاوتی نیاز داشته باشه
- اگه یکی به مخزن کدت دسترسی پیدا کنه، اطلاعات حساست لو میره!
Databaseها و Migrationها حالا که اپلیکیشنت رو ساختی، احتمالاً میخوای یه سری اطلاعات رو توی database ذخیره کنی. به طور پیشفرض، Laravel تنظیم شده که با SQLite کار کنه.
موقع ساخت پروژه، Laravel یه فایل database.sqlite توی پوشه database برات ساخته و migrationهای لازم رو هم اجرا کرده.
اگه دوست داری از MySQL یا PostgreSQL استفاده کنی، کافیه فایل .env رو آپدیت کنی. مثلاً برای MySQL اینجوری تنظیمش کن:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=
اگه databaseای غیر از SQLite انتخاب کردی، باید database رو بسازی و migrationها رو اجرا کنی:
php artisan migrate
راستی! اگه روی macOS یا Windows کار میکنی و میخوای MySQL، PostgreSQL یا Redis رو روی سیستمت نصب کنی، Herd Pro یه گزینه خوبه.
تنظیمات Directory یه نکته مهم: Laravel همیشه باید از روت وب سرور اجرا بشه. سعی نکن اون رو توی یه زیرپوشه اجرا کنی چون ممکنه فایلهای حساست لو برن!
نصب محلی با استفاده از Herd Herd یه محیط توسعه خفن و سریع برای Laravel و PHP روی macOS و Windows هست. همه چیزی که برای شروع کار با Laravel نیاز داری، از جمله PHP و Nginx رو داره.
وقتی Herd رو نصب کردی، میتونی شروع کنی به کدنویسی. Herd شامل ابزارهای خط فرمان برای php، composer، laravel، expose، node، npm و nvm هست.
Herd Pro امکانات بیشتری داره، مثل ساخت و مدیریت databaseهای MySQL، Postgres و Redis محلی، و همینطور مشاهده ایمیلها و مانیتورینگ لاگها.
Herd روی macOS اگه روی Mac کار میکنی، میتونی نصبکننده Herd رو از وبسایتش دانلود کنی. نصبکننده، آخرین نسخه PHP رو دانلود میکنه و مکت رو طوری تنظیم میکنه که Nginx همیشه در پسزمینه اجرا بشه.
Herd از dnsmasq برای پشتیبانی از دایرکتوریهای “پارک شده” استفاده میکنه. هر اپلیکیشن Laravel توی این دایرکتوریها به طور خودکار توسط Herd سرو میشه. به طور پیشفرض، Herd یه دایرکتوری پارک شده توی ~/Herd میسازه و میتونی به هر اپلیکیشن با دامنه .test دسترسی داشته باشی.
سریعترین راه برای ساخت یه اپلیکیشن جدید اینه:
cd ~/Herd laravel new my-app cd my-app herd open
البته میتونی دایرکتوریهای پارک شده و تنظیمات PHP رو از طریق رابط کاربری Herd که توی system tray هست مدیریت کنی.
Herd روی Windows میتونی نصبکننده Windows رو از سایت Herd دانلود کنی. بعد از نصب، Herd رو اجرا کن تا فرآیند راهاندازی تموم بشه.
رابط کاربری Herd با کلیک چپ روی آیکونش توی system tray باز میشه. کلیک راست هم یه منوی سریع با دسترسی به همه ابزارهای روزانهات باز میکنه.
موقع نصب، Herd یه دایرکتوری “پارک شده” توی %USERPROFILE%\Herd میسازه. برای شروع، PowerShell رو باز کن و این دستورها رو بزن:
cd ~\Herd laravel new my-app cd my-app herd open
نصب با Docker استفاده از Sail ما میخوایم شروع کار با Laravel برای همه آسون باشه، مهم نیست از چه سیستمعاملی استفاده میکنی. Laravel یه راهحل داخلی به اسم Sail داره که به کمک Docker کار میکنه.
Docker چیه؟ یه ابزار باحال که برنامهها و سرویسها رو توی "container"های سبک اجرا میکنه، بدون اینکه با نرمافزارهای نصب شده روی کامپیوترت تداخل داشته باشه. فقط کافیه Docker Desktop رو نصب کنی.
Sail یه رابط خط فرمان ساده برای کار با تنظیمات پیشفرض Docker در Laravel هست. اگه با Docker آشنایی داری، نگران نباش! میتونی همه چیز رو توی فایل docker-compose.yml سفارشی کنی.
Sail روی macOS اگه روی Mac کار میکنی و Docker Desktop نصب داری، میتونی با یه دستور ساده یه پروژه جدید Laravel بسازی:
curl -s "https://laravel.build/example-app" | bash
نکته: میتونی به جای “example-app” هر اسمی که دوست داری بذاری، فقط یادت باشه از حروف، اعداد، خط تیره و زیرخط استفاده کنی.
ممکنه نصب Sail چند دقیقه طول بکشه چون داره containerها رو روی سیستمت میسازه. بعد از ساخت پروژه:
cd example-app ./vendor/bin/sail up
وقتی containerها اجرا شدن، migrationهای database رو اجرا کن:
./vendor/bin/sail artisan migrate
حالا میتونی از طریق http://localhost به اپلیکیشنت دسترسی داشته باشی.
Sail روی Windows قبل از شروع روی Windows، باید:
- Docker Desktop نصب کنی
- WSL2 (Windows Subsystem for Linux 2) رو نصب و فعال کنی
- مطمئن شی Docker Desktop برای استفاده از WSL2 تنظیم شده
بعدش، Windows Terminal رو باز کن و یه جلسه جدید WSL2 شروع کن. حالا میتونی با همون دستور قبلی پروژه جدید بسازی:
curl -s https://laravel.build/example-app | bash
بقیه مراحل مثل macOS هست.
برای توسعه توی WSL2، پیشنهاد میکنیم از Visual Studio Code و افزونه Remote Development استفاده کنی.
Sail روی Linux اگه روی Linux کار میکنی و Docker Compose نصب داری، اول این دستور رو بزن (اگه از Docker Desktop استفاده نمیکنی، این مرحله رو رد کن):
docker context use default
بعد میتونی پروژهت رو بسازی:
curl -s https://laravel.build/example-app | bash
انتخاب سرویسهای Sail موقع ساخت پروژه جدید، میتونی سرویسهایی که میخوای توی docker-compose.yml تنظیم بشن رو انتخاب کنی. سرویسهای موجود شامل mysql، pgsql، mariadb، redis، memcached، meilisearch، typesense، minio، selenium و mailpit هستن:
curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
اگه سرویسی انتخاب نکنی، به طور پیشفرض mysql، redis، meilisearch، mailpit و selenium تنظیم میشن.
پشتیبانی IDE میتونی از هر ویرایشگر کدی که دوست داری استفاده کنی، ولی PhpStorm پشتیبانی گستردهای از Laravel و اکوسیستمش داره. افزونه Laravel Idea هم امکانات خفنی مثل تولید خودکار کد، تکمیل خودکار Eloquent و قوانین validation اضافه میکنه.
قدمهای بعدی حالا که اپلیکیشنت رو ساختی، احتمالاً میخوای بدونی چی رو باید یاد بگیری. اول از همه، پیشنهاد میکنیم با اینها آشنا بشی:
- چرخه حیات درخواستها
- تنظیمات
- ساختار پوشهها
- Frontend
- Service Container
- Facades
تازهکاری؟ Laravel Bootcamp رو چک کن! یه دوره عملی باحال که قدم به قدم باهات میاد تا اولین اپلیکیشن Laravelت رو بسازی.
Laravel به عنوان یک Full Stack Framework Laravel میتونه یه فریمورک full stack باشه. یعنی چی؟ یعنی ازش استفاده میکنی تا هم درخواستهای اپلیکیشنت رو مدیریت کنه، هم صفحات frontend رو با Blade یا تکنولوژیهای هیبریدی مثل Inertia نمایش بده. این رایجترین و به نظر ما پربازدهترین روش استفاده از Laravel هست.
اگه میخوای اینجوری از Laravel استفاده کنی، پیشنهاد میکنیم اینها رو مطالعه کنی:
- توسعه frontend
- routing
- viewها
- Eloquent ORM
راستی، پکیجهای باحال جامعه Laravel مثل Livewire و Inertia رو هم چک کن. با اینها میتونی مزایای اپلیکیشنهای تکصفحهای JavaScript رو هم داشته باشی.
یه نکته مهم: حتماً یاد بگیر چطور CSS و JavaScript اپلیکیشنت رو با Vite کامپایل کنی.
Laravel به عنوان API Backend Laravel میتونه backend برای اپلیکیشنهای JavaScript تکصفحهای یا موبایل باشه. مثلاً میتونی ازش به عنوان API backend برای اپلیکیشن Next.js استفاده کنی. توی این حالت، Laravel کار احراز هویت و ذخیره/بازیابی اطلاعات رو انجام میده و میتونی از سرویسهای قدرتمندش مثل صفها، ایمیلها و نوتیفیکیشنها استفاده کنی.
اگه میخوای اینجوری از Laravel استفاده کنی، اینها رو مطالعه کن:
- routing
- Laravel Sanctum
- Eloquent ORM
میخوای سریع شروع کنی؟ Laravel Breeze یه API stack و یه پیادهسازی frontend با Next.js داره که میتونی توی چند دقیقه راهاندازیش کنی.
خب، این بود کل متن! حالا میتونی بر اساس نیازت یکی از این دو مسیر رو انتخاب کنی و شروع کنی به ساخت اپلیکیشن رویاهات با Laravel. اگه سوالی داری، بپرس تا راهنماییت کنم! 🚀
p { color: red }