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

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

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

View در Laravel چیست؟ آموزش کامل View و نمایش صفحات در لاراول

ممدیر کل سیستم ۹ مهر ۱۴۰۵ ۱۶ دقیقه مطالعه ۶ بازدید
View در Laravel چیست؟ آموزش کامل View و نمایش صفحات در لاراول

وقتی کاربر وارد یک وب‌سایت می‌شود، معمولاً انتظار دارد یک صفحه HTML، اطلاعات یک محصول، لیست مقالات یا فرم خاصی را مشاهده کند.

در Laravel بخشی که مسئول آماده‌سازی و نمایش رابط کاربری برنامه است، View نام دارد.

برای مثال ممکن است کاربر وارد این آدرس شود:


/products

در این حالت درخواست می‌تواند چنین مسیری را طی کند:


Browser

   ↓

Route

   ↓

Controller

   ↓

View

   ↓

HTML Response

   ↓

Browser

در مقاله قبلی درباره Controller در Laravel صحبت کردیم و دیدیم Controller می‌تواند داده را آماده کرده و به View ارسال کند.

حالا در این مقاله می‌خواهیم دقیقاً بررسی کنیم که View در Laravel چیست، کجا قرار دارد، چگونه ساخته می‌شود، چگونه از Controller داده دریافت می‌کند و چگونه برای ساخت صفحات مختلف استفاده می‌شود.


# View در Laravel چیست؟

View بخشی از برنامه است که مسئول نمایش اطلاعات به کاربر است.

در یک پروژه Laravel، View معمولاً شامل HTML و کدهای مربوط به نمایش داده‌ها است.

برای مثال یک View ساده:


<h1>Hello Laravel</h1>

می‌تواند خروجی HTML موردنظر را تولید کند.

Viewها معمولاً در مسیر زیر قرار می‌گیرند:


resources/views

برای مثال:


resources/views/welcome.blade.php

در Laravel، Viewها معمولاً با پسوند:


.blade.php

ساخته می‌شوند.

این موضوع ما را به یکی از مهم‌ترین بخش‌های Laravel یعنی Blade می‌رساند که در مقاله بعدی به‌صورت کامل بررسی خواهد شد.


# View در معماری Laravel چه نقشی دارد؟

Laravel از ساختاری استفاده می‌کند که در بسیاری از پروژه‌ها با مفهوم MVC توضیح داده می‌شود:


Model

View

Controller

هر بخش مسئولیت متفاوتی دارد.

بخشوظیفه
Modelکار با داده و منطق مرتبط با داده
Viewنمایش اطلاعات به کاربر
Controllerپردازش درخواست و هماهنگ کردن بخش‌های مختلف

مثلاً در یک فروشگاه:


User

 ↓

Route

 ↓

ProductController

 ↓

Product Model

 ↓

View

 ↓

HTML

Controller می‌تواند محصولات را از Model دریافت کند و سپس آن‌ها را به View ارسال کند.

View نیز داده را به شکل HTML نمایش می‌دهد.


# Viewها در Laravel کجا قرار دارند؟

Viewهای Laravel در:


resources/views

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

برای مثال:


resources

└── views

    ├── welcome.blade.php

    ├── home.blade.php

    └── products

        ├── index.blade.php

        ├── show.blade.php

        └── create.blade.php

این ساختار به ما اجازه می‌دهد Viewها را بر اساس بخش‌های مختلف برنامه دسته‌بندی کنیم.

مثلاً:


products/

users/

orders/

admin/

auth/

می‌توانند هر کدام Viewهای مربوط به خودشان را داشته باشند.


# چگونه یک View در Laravel بسازیم؟

ساخت View بسیار ساده است.

مثلاً فایل زیر را ایجاد می‌کنیم:


resources/views/about.blade.php

و داخل آن می‌نویسیم:


<!DOCTYPE html>

<html lang="fa">

<head>

    <meta charset="UTF-8">

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

</head>

<body>



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



    <p>به وب‌سایت ما خوش آمدید.</p>



</body>

</html>

حالا باید این View را از طریق Route یا Controller نمایش دهیم.


# نمایش View با Route

برای نمایش View می‌توانیم از view() استفاده کنیم.

مثلاً:


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

    return view('about');

});

حالا اگر کاربر به:


/about

مراجعه کند، Laravel View زیر را پیدا می‌کند:


resources/views/about.blade.php

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


# چرا پسوند Blade را در view() نمی‌نویسیم؟

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


return view('about');

Laravel خودش View متناظر را پیدا می‌کند.

بنابراین نیازی نیست بنویسیم:


return view('about.blade.php');

بلکه:


return view('about');

روش معمول و صحیح برای ارجاع به این View است.


# نمایش View از Controller

در پروژه‌های واقعی معمولاً View را از Controller نمایش می‌دهیم.

مثلاً:


class AboutController extends Controller

{

    public function index()

    {

        return view('about');

    }

}

و Route:


Route::get('/about', [AboutController::class, 'index']);

جریان درخواست:


GET /about

    ↓

Route

    ↓

AboutController@index

    ↓

view('about')

    ↓

about.blade.php

    ↓

HTML

این ساختار از قرار دادن منطق زیاد داخل Route جلوگیری می‌کند.


# Viewهای داخل پوشه

برای پروژه‌های بزرگ بهتر است Viewها را دسته‌بندی کنیم.

مثلاً:


resources/views/products/index.blade.php

برای نمایش لیست محصولات.

برای نمایش این View می‌توانیم بنویسیم:


return view('products.index');

نقطه (.) برای مشخص کردن پوشه استفاده می‌شود.

یعنی:


products.index

به این مسیر اشاره می‌کند:


resources/views/products/index.blade.php


# ساخت View برای نمایش محصول

فرض کنیم می‌خواهیم صفحه جزئیات یک محصول را ایجاد کنیم.

فایل:


resources/views/products/show.blade.php

را می‌سازیم.

محتوای ساده:


<h1>Product Details</h1>



<p>Product information will appear here.</p>

سپس در Controller:


public function show()

{

    return view('products.show');

}


# ارسال داده از Controller به View

یکی از مهم‌ترین قابلیت‌های View این است که می‌توانیم داده را از Controller به آن ارسال کنیم.

مثلاً:


public function index()

{

    $name = 'Laptop';



    return view('products.index', compact('name'));

}

در View:


<h1>{{ $name }}</h1>

خروجی:


Laptop

خواهد بود.


# ارسال چند متغیر به View

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


public function index()

{

    $title = 'Products';



    $description = 'Product List';



    return view('products.index', compact(

        'title',

        'description'

    ));

}

در View:


<h1>{{ $title }}</h1>



<p>{{ $description }}</p>


# ارسال داده با آرایه

روش دیگر ارسال اطلاعات به View استفاده از آرایه است:


return view('products.index', [

    'title' => 'Products',

    'description' => 'Product List'

]);

سپس:


<h1>{{ $title }}</h1>



<p>{{ $description }}</p>

هر دو روش کاربرد دارند.


# ارسال لیست محصولات به View

فرض کنیم اطلاعات محصولات را در Controller داریم:


public function index()

{

    $products = [

        'Laptop',

        'Phone',

        'Tablet'

    ];



    return view(

        'products.index',

        compact('products')

    );

}

حالا View می‌تواند این داده را دریافت کند.

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

مثلاً:


@foreach ($products as $product)

    <p>{{ $product }}</p>

@endforeach

خروجی:


Laptop

Phone

Tablet


# ارسال داده از Model به View

در پروژه واقعی، داده‌ها معمولاً از Database دریافت می‌شوند.

مثلاً:


use App\Models\Product;



public function index()

{

    $products = Product::all();



    return view(

        'products.index',

        compact('products')

    );

}

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


Database

   ↓

Product Model

   ↓

Controller

   ↓

View

   ↓

HTML

این یکی از رایج‌ترین الگوهای استفاده از View در Laravel است.


# نمایش یک محصول در View

فرض کنیم Controller یک محصول را دریافت کرده است:


public function show(Product $product)

{

    return view(

        'products.show',

        compact('product')

    );

}

در View:


<h1>{{ $product->name }}</h1>



<p>{{ $product->description }}</p>



<p>{{ $product->price }}</p>

به این ترتیب اطلاعات Model در HTML نمایش داده می‌شود.


# View و Blade چه تفاوتی دارند؟

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

View به بخشی از برنامه گفته می‌شود که مسئول نمایش رابط کاربری است.

Blade موتور Template پیش‌فرض Laravel برای ساخت Viewهای پویاست.

مثلاً فایل:


products/index.blade.php

یک View است که از Blade استفاده می‌کند.

Blade امکاناتی مانند:

  • نمایش متغیر
  • شرط‌ها
  • حلقه‌ها
  • Layout
  • Component
  • Include
  • Template inheritance

را در اختیار ما قرار می‌دهد.

مقاله بعدی دقیقاً به Blade در Laravel اختصاص دارد.


# نمایش مقدار متغیر در View

یکی از رایج‌ترین کارها در View نمایش داده‌های متغیر است.

مثلاً:


<h1>{{ $title }}</h1>

اگر:


$title = 'Laravel';

باشد، خروجی:


Laravel

خواهد بود.

یکی از مزیت‌های مهم syntax مربوط به خروجی Blade، Escape شدن خروجی در حالت معمول است که به کاهش برخی ریسک‌های XSS کمک می‌کند.


# نمایش HTML خام

گاهی لازم است یک مقدار HTML به‌صورت خام نمایش داده شود.

در Blade می‌توان از:


{!! $content !!}

استفاده کرد.

اما باید در استفاده از HTML خام بسیار دقت کرد.

اگر مقدار از ورودی کاربر یا منبع غیرقابل اعتماد دریافت شده باشد، نمایش مستقیم آن می‌تواند خطر امنیتی ایجاد کند.

بنابراین:


{{ $content }}

و:


{!! $content !!}

را نباید بدون توجه به منبع داده جایگزین یکدیگر کرد.


# شرط‌ها در View

یکی از کاربردهای View این است که بر اساس وضعیت داده، خروجی متفاوتی نمایش دهیم.

مثلاً:


@if ($product->stock > 0)

    <p>موجود است</p>

@else

    <p>ناموجود است</p>

@endif

این ساختار باعث می‌شود View بتواند وضعیت‌های مختلف را نمایش دهد.

در مقاله Blade، ساختارهای شرطی را با جزئیات بیشتری بررسی خواهیم کرد.


# حلقه در View

برای نمایش مجموعه‌ای از داده‌ها می‌توانیم از حلقه استفاده کنیم.

مثلاً:


@foreach ($products as $product)

    <div>

        <h2>{{ $product->name }}</h2>

        <p>{{ $product->price }}</p>

    </div>

@endforeach

این روش برای نمایش:

  • محصولات
  • مقالات
  • کاربران
  • سفارش‌ها
  • دسته‌بندی‌ها

بسیار کاربردی است.


# Viewهای تو در تو

در پروژه‌های واقعی Viewها می‌توانند ساختار پوشه‌ای داشته باشند.

مثلاً:


resources/views/

├── home.blade.php

├── products/

│   ├── index.blade.php

│   ├── show.blade.php

│   └── create.blade.php

└── admin/

    ├── dashboard.blade.php

    └── users/

        └── index.blade.php

برای نمایش:


admin/users/index.blade.php

می‌توان نوشت:


return view('admin.users.index');

این ساختار به مدیریت پروژه‌های بزرگ کمک می‌کند.


# استفاده مجدد از بخش‌های View

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

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

می‌توان آن را در یک فایل جدا قرار داد و در Viewهای مختلف استفاده کرد.

مثلاً:


resources/views/partials/header.blade.php

و سپس در View:


@include('partials.header')

این کار باعث می‌شود کدهای تکراری کمتر شوند.


# Layout در View چیست؟

در یک سایت معمولاً بسیاری از صفحات ساختار مشترکی دارند.

مثلاً:


Header

Navbar

Content

Footer

به جای اینکه این HTML را در تمام صفحات کپی کنیم، می‌توانیم یک Layout مشترک بسازیم.

برای مثال:


resources/views/layouts/app.blade.php

سپس صفحات مختلف از این Layout استفاده می‌کنند.

این موضوع یکی از کاربردهای مهم Blade است و در مقاله بعدی با جزئیات بررسی خواهد شد.


# View Composer چیست؟

در بعضی پروژه‌ها لازم است داده خاصی به تعداد زیادی View ارسال شود.

برای چنین سناریوهایی Laravel قابلیت‌هایی مانند View Composer در اختیار توسعه‌دهنده قرار می‌دهد.

مثلاً ممکن است Sidebar سایت همیشه نیاز به لیست دسته‌بندی‌ها داشته باشد.

به جای اینکه در تک‌تک Controllerها این اطلاعات را ارسال کنیم، می‌توان از مکانیزم‌های مناسب Laravel برای آماده‌سازی داده مشترک Viewها استفاده کرد.

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


# بررسی وجود View

گاهی قبل از نمایش یک View می‌خواهیم مطمئن شویم فایل موردنظر وجود دارد.

Laravel امکان بررسی وجود View را نیز فراهم می‌کند.

برای مثال:


if (view()->exists('products.index')) {

    // View exists

}

این قابلیت در بعضی سناریوهای داینامیک می‌تواند مفید باشد.


# برگرداندن View همراه با Response

در Laravel View می‌تواند بخشی از یک Response باشد.

مثلاً:


return response()

    ->view('products.index', [

        'products' => $products

    ]);

این روش زمانی کاربرد دارد که بخواهیم Response را با کنترل بیشتری مدیریت کنیم.


# تفاوت View و Response

View مسئول تولید محتوای رابط کاربری است.

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

برای مثال:


return view('products.index');

یک View را به‌عنوان خروجی درخواست برمی‌گرداند.

اما Response می‌تواند انواع مختلفی داشته باشد:


HTML

JSON

Redirect

File

بنابراین View را نباید با مفهوم کلی Response یکی دانست.


# ساخت یک صفحه کامل در Laravel

حالا یک مثال ساده و کامل ایجاد کنیم.

فرض کنیم می‌خواهیم صفحه محصولات بسازیم.

مرحله اول: ساخت Route


Route::get(

    '/products',

    [ProductController::class, 'index']

)->name('products.index');

مرحله دوم: ساخت Controller


public function index()

{

    $products = [

        [

            'name' => 'Laptop',

            'price' => 50000000

        ],

        [

            'name' => 'Phone',

            'price' => 20000000

        ]

    ];



    return view(

        'products.index',

        compact('products')

    );

}

مرحله سوم: ساخت View

فایل:


resources/views/products/index.blade.php

محتوا:


<!DOCTYPE html>

<html lang="fa">

<head>

    <meta charset="UTF-8">

    <title>محصولات</title>

</head>

<body>



<h1>محصولات</h1>



@foreach ($products as $product)



    <div>

        <h2>{{ $product['name'] }}</h2>



        <p>

            قیمت:

            {{ $product['price'] }}

        </p>

    </div>



@endforeach



</body>

</html>

حالا جریان کامل:


Browser

   ↓

GET /products

   ↓

Route

   ↓

ProductController@index

   ↓

products.index

   ↓

HTML

   ↓

Browser

این یکی از ساده‌ترین نمونه‌های واقعی استفاده از View در Laravel است.


# View چه زمانی نباید مسئول منطق اصلی باشد؟

View برای نمایش اطلاعات ساخته شده است.

بنابراین بهتر است منطق سنگین کسب‌وکار را داخل View قرار ندهیم.

مثلاً بهتر است این کار را انجام ندهیم:


@php

    // complex business logic

    // database queries

    // payment calculations

    // order processing

@endphp

در عوض، بهتر است داده موردنیاز در Controller یا Service آماده شود و View فقط آن را نمایش دهد.

ساختار بهتر:


Controller / Service

       ↓

Prepared Data

       ↓

View

       ↓

HTML

این جداسازی باعث خوانایی و نگهداری بهتر پروژه می‌شود.


# اشتباهات رایج هنگام کار با View

۱. اشتباه در نام View

اگر فایل:


products/index.blade.php

باشد، باید بنویسیم:


view('products.index');

نه:


view('product.index');


۲. اشتباه در مسیر فایل

مسیر View باید با ساختار پوشه‌ها مطابقت داشته باشد.

مثلاً:


resources/views/admin/products/index.blade.php

با:


view('admin.products.index');

فراخوانی می‌شود.


۳. ارسال نکردن متغیر موردنیاز

اگر View انتظار داشته باشد:


{{ $product }}

اما Controller متغیر product را ارسال نکرده باشد، ممکن است با خطا مواجه شوید.


۴. قرار دادن منطق پیچیده داخل View

View بهتر است تا حد امکان روی نمایش اطلاعات تمرکز داشته باشد.


۵. تکرار بیش از حد HTML

اگر Header، Footer یا Sidebar در صفحات زیادی تکرار شده، بهتر است از Layout، Include یا Componentهای Blade استفاده شود.


# بهترین روش سازمان‌دهی Viewها

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


resources/views/



├── layouts/

│   └── app.blade.php

│

├── partials/

│   ├── header.blade.php

│   ├── footer.blade.php

│   └── sidebar.blade.php

│

├── home.blade.php

│

├── products/

│   ├── index.blade.php

│   ├── show.blade.php

│   ├── create.blade.php

│   └── edit.blade.php

│

├── orders/

│   ├── index.blade.php

│   └── show.blade.php

│

└── users/

    ├── index.blade.php

    └── show.blade.php

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

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


# تفاوت View، Blade و Template

برای اینکه این مفاهیم را با یکدیگر اشتباه نگیریم:

View

بخشی از برنامه که خروجی رابط کاربری را تولید می‌کند.

Blade

Template Engine پیش‌فرض Laravel برای ساخت Viewهای پویا.

Template

یک قالب یا ساختار قابل استفاده برای تولید صفحات.

در Laravel معمولاً این سه مفهوم در کنار هم استفاده می‌شوند.

مثلاً:


products/index.blade.php

یک View است که با Blade نوشته شده و می‌تواند از یک Template یا Layout مشترک استفاده کند.


# View در Laravel چه نقشی در MVC دارد؟

اگر بخواهیم کل فرآیند را خلاصه کنیم:


              Request

                 ↓

               Route

                 ↓

             Controller

                 ↓

               Model

                 ↓

             Controller

                 ↓

                View

                 ↓

             HTML Output

                 ↓

              Browser

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


# جمع‌بندی View در Laravel

View یکی از اجزای اصلی برنامه Laravel است که وظیفه نمایش اطلاعات و تولید رابط کاربری را بر عهده دارد.

در این مقاله یاد گرفتیم:

  • View در Laravel چیست؟
  • Viewها کجا قرار دارند؟
  • چگونه View بسازیم؟
  • چگونه View را از Route نمایش دهیم؟
  • چگونه View را از Controller نمایش دهیم؟
  • چگونه Viewهای داخل پوشه را فراخوانی کنیم؟
  • چگونه داده به View ارسال کنیم؟
  • چگونه اطلاعات Model را در View نمایش دهیم؟
  • View و Blade چه تفاوتی دارند؟
  • چگونه Viewهای تو در تو ایجاد کنیم؟
  • چگونه بخش‌های مشترک View را مدیریت کنیم؟
  • Layout چیست؟
  • View Composer چه کاربردی دارد؟
  • چگونه وجود View را بررسی کنیم؟
  • View و Response چه تفاوتی دارند؟
  • چرا نباید منطق پیچیده را داخل View قرار دهیم؟
  • خطاهای رایج View چیست؟
  • چگونه Viewهای یک پروژه را سازمان‌دهی کنیم؟

اکنون می‌دانیم که اطلاعات چگونه از Controller به View منتقل می‌شوند.

اما هنوز یک سؤال مهم باقی می‌ماند:

چطور می‌توانیم داخل Viewها به شکل حرفه‌ای شرط بنویسیم، حلقه ایجاد کنیم، Layout بسازیم، Component ایجاد کنیم و HTML داینامیک تولید کنیم؟

پاسخ این سؤال Blade است.

به همین دلیل مقاله بعدی کلاستر:

«Blade چیست؟»

خواهد بود.


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

View در Laravel چیست؟

View بخشی از برنامه Laravel است که برای نمایش اطلاعات و تولید رابط کاربری استفاده می‌شود.

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

معمولاً در:


resources/views

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

پسوند Viewهای Laravel چیست؟

Viewهای رایج Laravel با پسوند:


.blade.php

ساخته می‌شوند.

چگونه یک View را نمایش دهیم؟

از تابع view() استفاده می‌کنیم:


return view('home');

چگونه View را از Controller نمایش دهیم؟

مثلاً:


public function index()

{

    return view('products.index');

}

چگونه داده را به View ارسال کنیم؟

مثلاً:


return view('products.index', [

    'products' => $products

]);

یا:


return view(

    'products.index',

    compact('products')

);

Blade چیست؟

Blade موتور Template پیش‌فرض Laravel است که برای ساخت Viewهای پویا استفاده می‌شود.

آیا می‌توان Model را مستقیماً داخل View استفاده کرد؟

از نظر فنی ممکن است، اما بهتر است View تا حد امکان مسئول نمایش باشد و آماده‌سازی داده و منطق برنامه در Controller، Service یا بخش‌های مناسب دیگر انجام شود.

View و Controller چه تفاوتی دارند؟

Controller درخواست را پردازش و داده موردنیاز را آماده می‌کند؛ View این داده‌ها را برای کاربر نمایش می‌دهد.

آیا می‌توان یک View را در چند صفحه استفاده کرد؟

بله. با قابلیت‌هایی مانند Include، Layout و Componentهای Blade می‌توان بخش‌های مشترک رابط کاربری را قابل استفاده مجدد کرد.

نظرات (0)

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

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

مقالات مرتبط

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

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

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

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

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

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

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

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

۲۲ دقیقه