Команда генерації завдань у 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
]);
}
}
Автоматизоване налаштування гарантує наявність критичних перевірок скасування пакетів з моменту ініціалізації проєкту, запобігаючи виникненню непослідовних станів даних та неповним сценаріям обробки, які можуть виникнути через недогляд у ручній реалізації.
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту