1 | <?php |
||
19 | class MiddlewareQueue implements IteratorAggregate |
||
20 | { |
||
21 | public const DEFAULT_PRIORITY = 100; |
||
22 | |||
23 | /** @var int counter for FIFO order for items with same priority */ |
||
24 | protected $serial = PHP_INT_MAX; |
||
25 | |||
26 | /** @var SplPriorityQueue middleware */ |
||
27 | protected $queue; |
||
28 | |||
29 | 5 | public function __construct() |
|
33 | |||
34 | /** |
||
35 | * Adds middleware to queue |
||
36 | * |
||
37 | * @param MiddlewareInterface $middleware |
||
38 | * @param int $priority |
||
39 | * @return \self |
||
40 | */ |
||
41 | 5 | public function add(MiddlewareInterface $middleware, int $priority = self::DEFAULT_PRIORITY): self |
|
46 | |||
47 | /** |
||
48 | * Implements IteratorAggregate |
||
49 | * |
||
50 | * @return Traversable |
||
51 | */ |
||
52 | 5 | public function getIterator(): Traversable |
|
56 | } |
||
57 |