سی ام اس نویسسی ام اس نویسیاد بگیر، سیستم خودتو بنویس
مجلهتماس با ما
سی ام اس نویسسی ام اس نویس

CMS نویس مرجعی برای آموزش برنامه نویسی وب و PHP، توسعه افزونه‌های اختصاصی وردپرس، طراحی ورک‌فلو و اتوماسیون با n8n و توسعه CMS های اختصاصی است. هدف ما ارائه آموزش‌های کاربردی و راهکارهای حرفه‌ای برای توسعه‌دهندگان، کسب‌وکارها و علاقه‌مندان به دنیای برنامه‌نویسی است.

پیوندهای سریع
محصولات فیزیکیمحصولات دیجیتالدوره‌های آموزشی
سی ام اس نویس
مجله سی ام اس نویستماس با ماپنل کاربری
سی ام اس نویس — تمامی حقوق برای سی ام اس نویس محفوظ است. © 1406 تماس با ما09307711941
ساخت اولین پروژه Laravel؛ آموزش قدم‌به‌قدم از صفر تا اجرای پروژه

ساخت اولین پروژه Laravel؛ آموزش قدم‌به‌قدم از صفر تا اجرای پروژه

ممدیر کل سیستم ۷ مهر ۱۴۰۵ ۱۵ دقیقه مطالعه ۲ بازدید
ساخت اولین پروژه Laravel؛ آموزش قدم‌به‌قدم از صفر تا اجرای پروژه

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

در این آموزش قرار نیست فقط یک پروژه خالی بسازیم و آن را اجرا کنیم. از ایجاد پروژه شروع می‌کنیم و سپس یک صفحه ساده برای آن می‌سازیم تا با مفهوم Route و View در Laravel نیز به صورت عملی آشنا شوید.

هدف این مقاله این است که در پایان، یک پروژه واقعی Laravel روی سیستم خود داشته باشید که بتوانید در مقالات بعدی آن را توسعه دهید.


در این آموزش چه چیزی می‌سازیم؟

برای اینکه آموزش کاربردی باشد، یک پروژه ساده با عنوان Laravel Blog ایجاد می‌کنیم.

در مرحله اول پروژه ما بسیار ساده خواهد بود:


Laravel Blog

│

├── صفحه اصلی

│

├── صفحه درباره ما

│

└── صفحه مقالات

در ادامه کلاستر Laravel می‌توانیم همین پروژه را گسترش دهیم و به آن مواردی مانند:

  • Database
  • Migration
  • Model
  • Eloquent
  • Authentication
  • فرم‌ها
  • Validation
  • پنل مدیریت
  • API

اضافه کنیم.

بنابراین پروژه‌ای که در این مقاله ایجاد می‌کنیم، پایه‌ای برای یادگیری مفاهیم بعدی Laravel خواهد بود.


# پیش‌نیازهای ساخت پروژه Laravel

قبل از شروع، باید محیط توسعه شما آماده باشد.

حداقل موارد مورد نیاز عبارت‌اند از:

  • PHP
  • Composer
  • Laravel
  • یک ویرایشگر کد مانند VS Code
  • مرورگر

برای بررسی PHP:


php -v

برای بررسی Composer:


composer -V

اگر هر دو دستور بدون خطا اجرا شوند، می‌توانیم پروژه را ایجاد کنیم.

اگر هنوز Laravel را نصب نکرده‌اید، ابتدا مقاله نصب Laravel را مطالعه کنید.


# مرحله اول: ایجاد پروژه Laravel

ابتدا ترمینال را باز کنید.

می‌توانید به پوشه‌ای بروید که قصد دارید پروژه‌های Laravel خود را در آن قرار دهید.

برای مثال:


cd Desktop

سپس پروژه را با Composer ایجاد کنید:


composer create-project laravel/laravel laravel-blog

در این دستور:


composer create-project

به Composer می‌گوید یک پروژه جدید ایجاد کند.

و:


laravel/laravel

پکیج پایه Laravel است.

در نهایت:


laravel-blog

نام پوشه پروژه خواهد بود.

بنابراین پس از اجرای دستور، پوشه‌ای با نام:


laravel-blog

ایجاد می‌شود.


# مرحله دوم: ورود به پروژه

بعد از پایان نصب، وارد پوشه پروژه شوید:


cd laravel-blog

برای اطمینان از اینکه در مسیر صحیح قرار دارید، می‌توانید فایل‌های پروژه را مشاهده کنید.

در این مرحله باید فایل‌هایی مشابه موارد زیر وجود داشته باشند:


app

bootstrap

config

database

public

resources

routes

storage

tests

vendor

artisan

composer.json

.env

در مقاله بعدی کلاستر، ساختار این پوشه‌ها و فایل‌ها را به صورت کامل بررسی خواهیم کرد.


# مرحله سوم: باز کردن پروژه در VS Code

اگر از VS Code استفاده می‌کنید، می‌توانید از داخل پوشه پروژه دستور زیر را اجرا کنید:


code .

با اجرای این دستور، پوشه فعلی به عنوان پروژه در VS Code باز می‌شود.

اگر دستور code روی سیستم شما فعال نباشد، می‌توانید VS Code را به صورت دستی باز کرده و پوشه laravel-blog را انتخاب کنید.

اکنون ساختار پروژه Laravel را در محیط توسعه خود مشاهده می‌کنید.


# مرحله چهارم: بررسی فایل .env

یکی از فایل‌های مهم پروژه:


.env

است.

این فایل برای تنظیمات محیط اجرای برنامه استفاده می‌شود.

در ابتدای پروژه ممکن است تنظیماتی شبیه این مشاهده کنید:


APP_NAME=Laravel

APP_ENV=local

APP_KEY=

APP_DEBUG=true

APP_URL=http://localhost

مقادیر دقیق می‌توانند بر اساس پروژه و محیط شما متفاوت باشند.

در محیط Development معمولاً:


APP_ENV=local

استفاده می‌شود.

همچنین:


APP_DEBUG=true

باعث می‌شود در محیط توسعه اطلاعات بیشتری درباره خطاها مشاهده کنید.

اما فعال بودن Debug در محیط Production توصیه نمی‌شود.


# مرحله پنجم: تولید APP_KEY

اگر APP_KEY پروژه تنظیم نشده باشد، می‌توانید دستور زیر را اجرا کنید:


php artisan key:generate

Laravel یک کلید ایجاد کرده و آن را در .env قرار می‌دهد.

بعد از اجرای موفق دستور، مقدار:


APP_KEY=

پر خواهد شد.

این کلید برای بعضی قابلیت‌های رمزنگاری Laravel استفاده می‌شود و باید در محیط واقعی پروژه به شکل امن مدیریت شود.


# مرحله ششم: اجرای پروژه Laravel

حالا می‌توانیم اولین پروژه Laravel خود را اجرا کنیم.

در ریشه پروژه دستور زیر را اجرا کنید:


php artisan serve

Laravel یک سرور توسعه برای شما اجرا می‌کند.

معمولاً آدرسی مانند:


http://127.0.0.1:8000

در ترمینال نمایش داده می‌شود.

این آدرس را در مرورگر باز کنید.

اگر صفحه پیش‌فرض Laravel را مشاهده کردید، پروژه با موفقیت اجرا شده است.


# پروژه Laravel چگونه درخواست مرورگر را دریافت می‌کند؟

در همین مرحله یک مفهوم مهم وجود دارد.

وقتی مرورگر شما درخواست زیر را ارسال می‌کند:


http://127.0.0.1:8000/

Laravel باید تصمیم بگیرد که این درخواست به کدام بخش برنامه ارسال شود.

این کار توسط Route انجام می‌شود.

به زبان ساده:


Browser

   ↓

Laravel

   ↓

Route

   ↓

Application Logic

   ↓

View

   ↓

HTML

   ↓

Browser

فعلاً فقط با بخش Route و View کار می‌کنیم.

در مقاله‌های بعدی این مسیر را با Controller و سایر اجزای Laravel توسعه خواهیم داد.


# مرحله هفتم: ساخت اولین Route

فایل:


routes/web.php

را باز کنید.

در پروژه Laravel معمولاً یک Route اولیه وجود دارد.

برای ساخت یک صفحه ساده می‌توانیم Route زیر را تعریف کنیم:


use Illuminate\Support\Facades\Route;



Route::get('/', function () {

    return 'Hello Laravel!';

});

حالا پروژه را دوباره در مرورگر باز کنید:


http://127.0.0.1:8000

باید عبارت زیر را مشاهده کنید:


Hello Laravel!

تبریک!

شما اولین پاسخ را با Laravel ایجاد کرده‌اید.


# Route چیست؟

Route مشخص می‌کند وقتی کاربر یک URL مشخص را درخواست می‌کند، Laravel چه کاری انجام دهد.

مثلاً:


Route::get('/', function () {

    return 'صفحه اصلی';

});

یعنی زمانی که کاربر درخواست GET برای / ارسال کند، این کد اجرا شود.

یک مثال دیگر:


Route::get('/about', function () {

    return 'درباره ما';

});

حالا اگر کاربر به آدرس:


http://127.0.0.1:8000/about

برود، عبارت:


درباره ما

نمایش داده می‌شود.


# ساخت چند صفحه ساده در پروژه

حالا می‌توانیم پروژه خود را کمی واقعی‌تر کنیم.

در routes/web.php بنویسید:


use Illuminate\Support\Facades\Route;



Route::get('/', function () {

    return 'صفحه اصلی وب‌سایت';

});



Route::get('/about', function () {

    return 'درباره ما';

});



Route::get('/articles', function () {

    return 'مقالات';

});

اکنون پروژه ما سه مسیر دارد:

URLخروجی
/صفحه اصلی
/aboutدرباره ما
/articlesمقالات

مثلاً:


http://127.0.0.1:8000/about

صفحه درباره ما را نمایش می‌دهد.


# چرا نباید تمام HTML را داخل Route بنویسیم؟

ممکن است در ابتدای کار وسوسه شوید HTML صفحه را مستقیماً داخل Route قرار دهید.

مثلاً:


Route::get('/', function () {

    return '<h1>Hello Laravel</h1>';

});

این روش برای آزمایش‌های بسیار ساده قابل استفاده است، اما برای یک پروژه واقعی مناسب نیست.

تصور کنید بخواهیم یک صفحه کامل HTML با:

  • Header
  • Navigation
  • Footer
  • CSS
  • تصاویر
  • لیست مقالات
  • فرم

بسازیم.

قرار دادن تمام این کد داخل Route باعث شلوغ شدن و سخت شدن نگهداری پروژه می‌شود.

Laravel برای حل چنین مسئله‌ای از View استفاده می‌کند.


# مرحله هشتم: ساخت اولین View

به پوشه زیر بروید:


resources/views

یک فایل جدید ایجاد کنید:


home.blade.php

داخل آن بنویسید:


<!DOCTYPE html>

<html lang="fa" dir="rtl">

<head>

    <meta charset="UTF-8">

    <title>Laravel Blog</title>

</head>

<body>



    <h1>به Laravel Blog خوش آمدید</h1>



    <p>

        این اولین صفحه پروژه Laravel من است.

    </p>



</body>

</html>

حالا باید Route را تغییر دهیم.


# مرحله نهم: نمایش View از طریق Route

در:


routes/web.php

بنویسید:


use Illuminate\Support\Facades\Route;



Route::get('/', function () {

    return view('home');

});

اکنون اگر صفحه اصلی را باز کنید:


http://127.0.0.1:8000

Laravel فایل:


resources/views/home.blade.php

را پیدا کرده و آن را نمایش می‌دهد.


# چرا view('home') فایل home.blade.php را پیدا می‌کند؟

Laravel برای Viewها یک قرارداد مشخص دارد.

وقتی می‌نویسیم:


view('home')

Laravel به دنبال View مربوط به home می‌گردد.

در این مثال فایل:


resources/views/home.blade.php

است.

پس:


view('home')

به:


resources/views/home.blade.php

اشاره می‌کند.

پسوند:


.blade.php

به سیستم Template Engine لاراول یعنی Blade مربوط است.

در مقاله جداگانه‌ای در ادامه کلاستر، Blade را به صورت کامل بررسی خواهیم کرد.


# مرحله دهم: ساخت صفحه درباره ما

حالا یک View دیگر بسازید:


resources/views/about.blade.php

محتوای آن:


<!DOCTYPE html>

<html lang="fa" dir="rtl">

<head>

    <meta charset="UTF-8">

    <title>درباره ما</title>

</head>

<body>



    <h1>درباره ما</h1>



    <p>

        این صفحه درباره پروژه Laravel ما است.

    </p>



</body>

</html>

سپس Route مربوط به آن را ایجاد کنید:


Route::get('/about', function () {

    return view('about');

});

حالا:


http://127.0.0.1:8000/about

را باز کنید.


# پروژه ما تا اینجا چه ساختاری دارد؟

اکنون پروژه ما تقریباً چنین ساختاری دارد:


laravel-blog/

│

├── app/

├── bootstrap/

├── config/

├── database/

├── public/

├── resources/

│   └── views/

│       ├── home.blade.php

│       └── about.blade.php

│

├── routes/

│   └── web.php

│

├── storage/

├── tests/

├── vendor/

│

├── .env

├── artisan

├── composer.json

└── composer.lock

در این مرحله فقط چند قسمت پروژه را لمس کرده‌ایم.

در مقاله بعدی، ساختار پروژه Laravel را دقیق‌تر بررسی می‌کنیم تا بدانیم هر پوشه و فایل چه مسئولیتی دارد.


# ساخت صفحه مقالات

حالا یک صفحه دیگر به پروژه اضافه کنیم.

فایل زیر را بسازید:


resources/views/articles.blade.php

و داخل آن بنویسید:


<!DOCTYPE html>

<html lang="fa" dir="rtl">

<head>

    <meta charset="UTF-8">

    <title>مقالات</title>

</head>

<body>



    <h1>مقالات Laravel</h1>



    <ul>

        <li>Laravel چیست؟</li>

        <li>نصب Laravel</li>

        <li>ساخت اولین پروژه Laravel</li>

    </ul>



</body>

</html>

سپس Route:


Route::get('/articles', function () {

    return view('articles');

});

اکنون:


http://127.0.0.1:8000/articles

را باز کنید.


# آیا بهتر نیست Routeها را مرتب کنیم؟

بله.

در یک پروژه واقعی بهتر است Routeها را با ساختار مشخص تعریف کنیم.

مثلاً:


<?php



use Illuminate\Support\Facades\Route;



Route::get('/', function () {

    return view('home');

});



Route::get('/about', function () {

    return view('about');

});



Route::get('/articles', function () {

    return view('articles');

});

در پروژه‌های بزرگ‌تر، منطق برنامه را مستقیماً داخل Route قرار نمی‌دهیم و از Controller استفاده می‌کنیم.

این موضوع در مقاله Controller در Laravel بررسی خواهد شد.


# ساخت اولین لینک بین صفحات

حالا بهتر است صفحات ما به یکدیگر لینک داشته باشند.

در home.blade.php می‌توانید بنویسید:


<nav>

    <a href="/">خانه</a>

    <a href="/about">درباره ما</a>

    <a href="/articles">مقالات</a>

</nav>

با این کار کاربر می‌تواند بین صفحات جابه‌جا شود.

البته در پروژه واقعی Laravel بهتر است لینک‌ها را به شکل مناسب و با امکانات Routing خود Laravel ایجاد کنیم که در مباحث Blade و Route بیشتر با آن آشنا خواهید شد.


# اضافه کردن CSS ساده

برای اینکه پروژه ظاهر بهتری داشته باشد، می‌توانیم کمی CSS اضافه کنیم.

مثلاً:


<style>

    body {

        font-family: sans-serif;

        direction: rtl;

        max-width: 900px;

        margin: 40px auto;

        padding: 20px;

    }



    nav {

        display: flex;

        gap: 20px;

        margin-bottom: 30px;

    }



    a {

        text-decoration: none;

    }

</style>

این CSS فعلاً مستقیماً داخل View قرار گرفته است.

در پروژه‌های حرفه‌ای، Assetها بهتر است به شکل اصولی مدیریت شوند و Laravel در این زمینه ابزارهای مناسبی در اختیار توسعه‌دهنده قرار می‌دهد.


# آیا برای این پروژه به Database نیاز داریم؟

در این مرحله خیر.

ما فقط:

  • پروژه را ایجاد کردیم.
  • Route ساختیم.
  • View ایجاد کردیم.
  • صفحات مختلف ساختیم.
  • بین صفحات لینک ایجاد کردیم.

هنوز هیچ داده‌ای از Database دریافت نمی‌کنیم.

اما اگر بخواهیم مثلاً مقالات را از Database بخوانیم، باید مفاهیم دیگری مانند:

  • Migration
  • Model
  • Eloquent
  • Database
  • Query

را یاد بگیریم.

این مباحث در ادامه کلاستر Laravel به صورت جداگانه بررسی خواهند شد.


# اجرای پروژه Laravel بعد از خاموش و روشن شدن سیستم

فرض کنید کامپیوتر خود را خاموش کرده‌اید و روز بعد می‌خواهید روی پروژه کار کنید.

نیازی نیست پروژه را دوباره نصب کنید.

فقط وارد پوشه پروژه شوید:


cd laravel-blog

و سرور توسعه را اجرا کنید:


php artisan serve

اگر وابستگی‌های پروژه قبلاً نصب شده باشند، نیازی به اجرای مجدد:


composer create-project

ندارید.

این دستور فقط برای ایجاد پروژه جدید استفاده می‌شود.


# اگر پروژه Laravel را از Git دریافت کنیم چه می‌شود؟

این حالت با ساخت پروژه جدید کمی متفاوت است.

فرض کنید پروژه از یک Repository دریافت شده باشد:


git clone https://example.com/project.git

بعد وارد پروژه می‌شوید:


cd project

سپس معمولاً وابستگی‌های PHP را نصب می‌کنید:


composer install

و در صورت وجود وابستگی‌های JavaScript:


npm install

همچنین باید تنظیمات .env را آماده کنید.

این فرآیند با ایجاد یک پروژه جدید تفاوت دارد.


# خطاهای رایج هنگام ساخت اولین پروژه Laravel

۱. دستور php کار نمی‌کند

بررسی کنید:


php -v

اگر خطا گرفتید، PHP نصب نیست یا PATH به درستی تنظیم نشده است.


۲. Composer اجرا نمی‌شود

بررسی کنید:


composer -V

اگر اجرا نشد، نصب Composer یا PATH را بررسی کنید.


۳. php artisan اجرا نمی‌شود

ابتدا مطمئن شوید در پوشه اصلی پروژه هستید:


cd laravel-blog

سپس:


php artisan

را اجرا کنید.


۴. View پیدا نمی‌شود

اگر با خطایی شبیه View not found مواجه شدید، نام View و محل فایل را بررسی کنید.

مثلاً اگر دارید:


return view('home');

باید فایل زیر وجود داشته باشد:


resources/views/home.blade.php


۵. صفحه Laravel باز نمی‌شود

بررسی کنید که سرور در حال اجرا باشد:


php artisan serve

سپس آدرسی را که Laravel در ترمینال نمایش داده است در مرورگر باز کنید.


# ساخت اولین پروژه Laravel به صورت خلاصه

تا اینجا مسیر ما چنین بوده است:


آماده‌سازی PHP و Composer

        ↓

ایجاد پروژه

        ↓

composer create-project

        ↓

ورود به پوشه پروژه

        ↓

تنظیم .env

        ↓

تولید APP_KEY

        ↓

php artisan serve

        ↓

ساخت Route

        ↓

ساخت View

        ↓

نمایش صفحه در مرورگر

و پروژه ما اکنون می‌تواند چیزی شبیه این باشد:


Laravel Blog

│

├── صفحه اصلی

├── درباره ما

└── مقالات


# یک نکته مهم برای شروع یادگیری Laravel

در ابتدای یادگیری Laravel ممکن است بخواهید همه قابلیت‌های فریم‌ورک را همزمان یاد بگیرید.

این کار معمولاً باعث سردرگمی می‌شود.

بهتر است مفاهیم را مرحله‌به‌مرحله یاد بگیرید:


Laravel

   ↓

Route

   ↓

Controller

   ↓

View

   ↓

Blade

   ↓

Request / Response

   ↓

Validation

   ↓

Database

   ↓

Migration

   ↓

Model

   ↓

Eloquent

به همین دلیل ساختار کلاستر Laravel نیز به صورت مرحله‌ای طراحی شده است؛ ابتدا محیط و پروژه را آماده می‌کنیم و سپس هر بخش را جداگانه یاد می‌گیریم.


# سوالات متداول

اولین پروژه Laravel را چگونه بسازیم؟

ساده‌ترین روش این است:


composer create-project laravel/laravel laravel-blog

سپس:


cd laravel-blog

و:


php artisan serve


آیا برای ساخت اولین پروژه Laravel باید MySQL نصب کنیم؟

خیر.

برای پروژه‌ای که در این آموزش ساختیم، هنوز نیازی به Database نداریم.

زمانی که بخواهیم داده‌های واقعی را ذخیره کنیم، باید Database را به پروژه متصل کنیم.


آیا می‌توانیم نام پروژه Laravel را تغییر دهیم؟

بله.

نام پوشه در زمان ایجاد پروژه می‌تواند هر نام مناسبی باشد:


composer create-project laravel/laravel shop

یا:


composer create-project laravel/laravel blog


اولین Route در Laravel کجا قرار دارد؟

Routeهای مربوط به Web معمولاً در فایل زیر قرار می‌گیرند:


routes/web.php


Viewهای Laravel کجا قرار می‌گیرند؟

Viewها در:


resources/views

قرار می‌گیرند.

Viewهای Blade معمولاً پسوند:


.blade.php

دارند.


# جمع‌بندی

در این مقاله اولین پروژه Laravel خود را از صفر ساختیم.

ابتدا پروژه را با Composer ایجاد کردیم:


composer create-project laravel/laravel laravel-blog

سپس وارد پروژه شدیم:


cd laravel-blog

کلید برنامه را ایجاد کردیم:


php artisan key:generate

پروژه را اجرا کردیم:


php artisan serve

سپس با Route آشنا شدیم و اولین صفحات پروژه را ساختیم.

در نهایت ساختار ساده پروژه ما به این شکل درآمد:


laravel-blog

│

├── resources/views

│   ├── home.blade.php

│   ├── about.blade.php

│   └── articles.blade.php

│

└── routes

    └── web.php

این پروژه هنوز بسیار ساده است، اما یک پایه واقعی برای ادامه آموزش Laravel محسوب می‌شود.

در مقاله بعدی کلاستر، سراغ «ساختار پروژه Laravel» می‌رویم و پوشه‌ها و فایل‌های اصلی پروژه را بررسی می‌کنیم تا دقیقاً بدانیم هر قسمت چه وظیفه‌ای دارد و هنگام توسعه پروژه، کد هر بخش را کجا باید قرار دهیم.

نظرات (0)

نظرات پس از تأیید مدیر نمایش داده می‌شوند

هنوز نظری ثبت نشده است؛ اولین نفر باشید!

مقالات مرتبط

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

۲۴ دقیقه
ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

۲۲ دقیقه
ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

۲۲ دقیقه
مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

۲۲ دقیقه