Сообщество RSS DEV

Laravel Pipelines и компонуемое промежуточное ПО для заданий

Laravel Pipeline: Мощный инструмент для создания цепочек операций Laravel предоставляет реализацию паттерна "Pipeline", который позволяет создавать цепочки операций (пайплайнов), через которые проходит определенное значение. Каждый пайплайн представляет собой вызываемую функцию или класс со специальным публичным методом, принимающим два аргумента: "passable" и Closure. - "Passable" - это значение, которое передается по пайплайну. - Closure - это оболочка, которая вызывает следующий пайплайн в цепочке. Применение пайплайнов: Пайплайны находят применение в различных сценариях, включая: - HTTP Middleware: Laravel использует пайплайны для управления жизненным циклом HTTP-запросов. - Job Middleware: Позволяет отслеживать метрики, обрабатывать ошибки, проверять истечение срока действия заданий. - Аутентификация пользователей в Job: Можно создать middleware, который авторизует пользователя перед передачей задания следующему middleware в цепочке. Создание композитных middleware: Laravel позволяет создавать композитные middleware с использованием traits. Trait `HasMiddleware` позволяет добавить метод `middleware`, который динамически создает массив middleware на основе traits, используемых классом задания. Это упрощает добавление middleware в задания путем создания traits, определяющих необходимые middleware. Генерация Job middleware: В Laravel 11.26 и более поздних версиях команда `artisan make:job-middleware` позволяет создавать Job middleware. В целом, Laravel Pipeline - это универсальный инструмент для создания любой серии композитных операций, работающих над одним значением.
dev.to
Laravel Pipelines & Composable Job Middleware