1 | <?php |
||
8 | class Runner |
||
9 | { |
||
10 | /** |
||
11 | * @var callable[] |
||
12 | */ |
||
13 | protected $before = []; |
||
14 | |||
15 | /** |
||
16 | * @var callable[] |
||
17 | */ |
||
18 | protected $after = []; |
||
19 | |||
20 | /** |
||
21 | * @var callable[] |
||
22 | */ |
||
23 | protected $queue = []; |
||
24 | |||
25 | /** |
||
26 | * Whether the queue has been built. |
||
27 | * |
||
28 | * @var boolean |
||
29 | */ |
||
30 | protected $queued = false; |
||
31 | |||
32 | /** |
||
33 | * Build and invoke a stack of middleware around a specific middleware. |
||
34 | * |
||
35 | * @param callable $middleware |
||
36 | * @param \Psr\Http\Message\ServerRequestInterface $request |
||
37 | * @param \Psr\Http\Message\ResponseInterface $response |
||
38 | * |
||
39 | * @return \Psr\Http\Message\ResponseInterface |
||
40 | */ |
||
41 | 15 | public function run(callable $middleware, ServerRequestInterface $request, ResponseInterface $response) |
|
49 | |||
50 | /** |
||
51 | * Next callable to be passed throughout queue. |
||
52 | * |
||
53 | * @param \Psr\Http\Message\ServerRequestInterface $request |
||
54 | * @param \Psr\Http\Message\ResponseInterface $response |
||
55 | * |
||
56 | * @return \Psr\Http\Message\ResponseInterface |
||
57 | */ |
||
58 | 15 | public function next(ServerRequestInterface $request, ResponseInterface $response) |
|
67 | |||
68 | /** |
||
69 | * Add a middleware to the before queue. |
||
70 | * |
||
71 | * @param callable $middleware |
||
72 | * |
||
73 | * @return self |
||
74 | */ |
||
75 | public function before(callable $middleware) |
||
81 | |||
82 | /** |
||
83 | * Add a middleware to the after queue. |
||
84 | * |
||
85 | * @param callable $middleware |
||
86 | * |
||
87 | * @return self |
||
88 | */ |
||
89 | public function after(callable $middleware) |
||
95 | |||
96 | /** |
||
97 | * Build the queue of middleware. |
||
98 | * |
||
99 | * @param callable $middleware |
||
100 | * |
||
101 | * @return void |
||
102 | */ |
||
103 | 15 | protected function buildQueue(callable $middleware) |
|
111 | } |
||
112 |