Спрощене створення пакетних завдань за допомогою вдосконалених команд Artisan у Laravel

Перекладено ШІ 2 Laravel News 02 червня, 2026

Ларавел ввів нову команду генерації завдань, яка спрощує налаштування пакетної обробки завдяки інтегрованим параметрам. Як це може заощадити ваш час та полегшити роботу? Читайте далі, щоб дізнатися про переваги автоматизованого створення пакетних завдань!

Команда генерації завдань у Laravel тепер спрощує налаштування пакетної обробки за допомогою інтегрованої опції прапорця. Це покращення усуває потребу в ручному налаштуванні, забезпечуючи, щоб розробники включали необхідні шаблони обробки пакетів з самого початку.

Традиційне налаштування пакетних завдань вимагало кількох ручних кроків після створення початкового завдання:

php artisan make:job ProcessDocument
 
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
 
class ProcessDocument implements ShouldQueue
{
    use Batchable, Queueable;
 
    public function handle(): void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
 
        // Логіка обробки тут
    }
}

Покращена команда автоматично генерує повністю готові до пакетної обробки завдання:

php artisan make:job ProcessDocument --batched

Ця одна команда створює повністю налаштовані класи з необхідними рисами та обробкою скасування, інтегрованою у весь процес реалізації.

Створення комплексної системи обробки документів демонструє практичні переваги автоматизованого скелетного коду для пакетних завдань:

namespace App\Jobs;
 
use App\Models\Document;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
 
class ProcessDocument implements ShouldQueue
{
    use Batchable, Queueable;
 
    public function __construct(
        public Document $document
    ) {}
 
    public function handle(): void
    {
        if ($this->batch()->cancelled()) {
            return;
        }
 
        $this->extractText();
        $this->generateThumbnail();
        $this->performOcr();
 
        $this->document->markAsProcessed();
    }
 
    private function extractText(): void
    {
        //
    }
 
    private function generateThumbnail(): void
    {
        //
    }
 
    private function performOcr(): void
    {
        //
    }
}
 
class DocumentController
{
    public function processBatch(Collection $documents)
    {
        $jobs = $documents->map(
            fn($document) => new ProcessDocument($document)
        );
 
        $batch = Bus::batch($jobs)
            ->name("Document Processing Batch")
            ->onQueue('document-processing')
            ->dispatch();
 
        return response()->json([
            'batch_id' => $batch->id,
            'job_count' => $batch->totalJobs
        ]);
    }
}

Автоматизоване налаштування гарантує наявність критичних перевірок скасування пакетів з моменту ініціалізації проєкту, запобігаючи виникненню непослідовних станів даних та неповним сценаріям обробки, які можуть виникнути через недогляд у ручній реалізації.

Популярні

Інше, що варто прочитати

173 Оновлено 01 червня, 2026

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

15 Оновлено 01 червня, 2026

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

11 Оновлено 01 червня, 2026

Локальні моделі та їх скоупи в Laravel за допомогою атрибута Scope

В Laravel 12 ми отримали можливість використовувати новий підхід для визначення локальних скоупів у моделях Eloquent. Дізнайтеся, як новий атрибут #[Scope] спрощує цей процес і зберігає ваші назви методів незмінними