Final Class Yiisoft\Queue\Middleware\FailureHandling\FailureMiddlewareDispatcher
| Inheritance | Yiisoft\ |
|---|
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\ |
|
| dispatch() | Dispatch request through middleware to get response. | Yiisoft\ |
| withMiddlewares() | Returns new instance with middleware handlers replaced with the ones provided. | Yiisoft\ |
Constants
| Constant | Value | Description | Defined By |
|---|---|---|---|
| DEFAULT_PIPELINE | 'failure-pipeline-default' | Yiisoft\ |
Method Details
| public mixed __construct ( Yiisoft\ | ||
| $middlewareFactory | Yiisoft\ |
|
| $middlewareDefinitions | array[][]|callable[][]|\ |
|
public function __construct(
private readonly FailureMiddlewareFactoryInterface $middlewareFactory,
private array $middlewareDefinitions,
) {
$this->init();
}
Dispatch request through middleware to get response.
| public Yiisoft\ | ||
| $request | Yiisoft\ |
Request to pass to middleware. |
| $finishHandler | Yiisoft\ |
Handler to use in case no middleware produced a response. |
public function dispatch(
FailureHandlingRequest $request,
FailureHandlerInterface $finishHandler,
): FailureHandlingRequest {
$queueName = $request->getQueueName();
if (!isset($this->middlewareDefinitions[$queueName]) || $this->middlewareDefinitions[$queueName] === []) {
$queueName = self::DEFAULT_PIPELINE;
}
$definitions = array_reverse($this->middlewareDefinitions[$queueName]);
$this->stack[$queueName] ??= new FailureMiddlewareStack($this->buildMiddlewares(...$definitions), $finishHandler);
return $this->stack[$queueName]->handleFailure($request);
}
Returns new instance with middleware handlers replaced with the ones provided.
The last specified handler will be executed first.
| public self withMiddlewares ( array[][]|callable[][]|\ | ||
| $middlewareDefinitions | array[][]|callable[][]|\ |
Each array element is:
For callables typed parameters are automatically injected using dependency injection container. |
| return | self |
New instance of the {@see \ |
|---|---|---|
public function withMiddlewares(array $middlewareDefinitions): self
{
$instance = clone $this;
$instance->middlewareDefinitions = $middlewareDefinitions;
// Fixes a memory leak.
unset($instance->stack);
$instance->stack = [];
$instance->init();
return $instance;
}
User Contributed Notes
Leave a comment
Join the conversation to share a note.