ویژگی‌های جدید Laravel 11 بخش اول

سلام رفقا من علیرضا احمدی هستم و بیش از ۱۲ ساله که دارم برنامه نویسی میکنم عاشق زبان برنامه نویسی php و python هستم و سمت php مثل همه فریمورک لاراول رو خیلی دوست دارم و ویژگی های جدیدش رو دنبال میکنم، امروز تصمیم گرفتم در مورد برخی از ویژگی های جدیدش باهاتون صحبت کنم

طبیعتا این پست بخش های مختلفی رو خواهد داشت و قسمت مقدمه اش رو هم قبلا در وبلاگم (معرفی لاراول 11 : رونمایی از ویژگی های جدید laravel 11 ) صحبت کرده بودم

من عاشق اموزش هستم و حتی توی تایم های آزادم به تدریس خصوصی لاراول مشغول هستم

این جا دوست دارم در مورد بهبود در Job Batching در لاراول ۱۱ صحبت کنم

معرفی Job Batching در لاراول ۱۱ :

در Laravel 10 و نسخه‌های قبل از آن، مدیریت دسته‌ای از Jobها (Job Batching) به صورت محدودتری انجام می‌شد و قابلیت‌های پیشرفته‌ای که در Laravel 11 معرفی شده‌اند، وجود نداشت. در ادامه، نحوه استفاده از Job Batching در Laravel 10 و قبل از آن را بررسی می‌کنیم.

مثالی از نحوه استفاده از Job Batching در Laravel 10:

مثالی از نحوه استفاده از Job Batching در Laravel 10:

phpCopy codeuse App\Jobs\ProcessPodcast;
use App\Jobs\ReleasePodcast;
use Illuminate\Bus\Batch;
use Illuminate\Support\Facades\Bus;
use Throwable;

Bus::batch([
    new ProcessPodcast,
    new ReleasePodcast
])->then(function (Batch $batch) {
    // همه Jobها با موفقیت انجام شد
})->catch(function (Batch $batch, Throwable $e) {
    // یکی از Jobها شکست خورده است
})->finally(function (Batch $batch) {
    // این کد همیشه اجرا می‌شود، چه Jobها موفق شوند یا شکست بخورند
})->dispatch();

مقایسه با Laravel 11 :

در Laravel 11، قابلیت Job Batching بهبود یافته و امکانات بیشتری اضافه شده است. بهبودهای عمده شامل قابلیت مدیریت بهتر دسته‌ها، امکان بررسی وضعیت هر Job به صورت دقیق‌تر و ارائه گزارش‌های دقیق‌تر از وضعیت اجرای Jobها می‌شود. این ویژگی‌ها به توسعه‌دهندگان این امکان را می‌دهد که کنترل بیشتری بر روی اجرای Jobهای دسته‌ای داشته باشند.

برای مقایسه، در ادامه همان مثال قبلی با بهبودهای Laravel 11 را می‌بینیم:

برای مقایسه، در ادامه همان مثال قبلی با بهبودهای Laravel 11 را می‌بینیم:

phpCopy codeuse App\Jobs\ProcessPodcast;
use App\Jobs\ReleasePodcast;
use Illuminate\Bus\Batch;
use Illuminate\Support\Facades\Bus;
use Throwable;

Bus::batch([
    new ProcessPodcast,
    new ReleasePodcast
])->then(function (Batch $batch) {
    // همه Jobها با موفقیت انجام شد
})->catch(function (Batch $batch, Throwable $e) {
    // یکی از Jobها شکست خورده است
})->finally(function (Batch $batch) {
    // این کد همیشه اجرا می‌شود، چه Jobها موفق شوند یا شکست بخورند
})->name('Podcast Processing Batch')  // نامگذاری دسته برای مدیریت بهتر
->onQueue('podcasts')  // اختصاص صف خاص برای دسته
->allowFailures()  // اجازه به شکست خوردن برخی از Jobها بدون توقف دسته
->dispatch();

نتیجه‌گیری

در حالی که Laravel 10 قابلیت‌های ابتدایی Job Batching را معرفی کرد، Laravel 11 با ارائه ویژگی‌های جدید و بهبود یافته، کنترل و امکانات بیشتری را برای مدیریت دسته‌های Jobها به توسعه‌دهندگان ارائه می‌دهد. این بهبودها شامل نامگذاری دسته‌ها، اختصاص صف‌های خاص، اجازه به شکست برخی از Jobها و دیگر امکانات پیشرفته می‌شود که تجربه بهتری در مدیریت Jobها فراهم می‌کند.

امیدوارم از خواند این مقاله لذت برده باشید