collection-interop / queue
描述“队列”抽象数据类型(ADT)行为的接口。
v1.0.1
2019-08-03 02:30 UTC
Requires
- php: ^7.3
This package is not auto-updated.
Last update: 2024-09-23 07:39:30 UTC
README
描述“队列”抽象数据类型(ADT)行为的接口。
安装
在您的项目/库中使用这些接口的最佳方式是使用 Composer
$ composer require collection-interop/queue
用法
final class RouteTable implements \Interop\Collection\Queue { private $routes = []; private $type = ''; public function enqueue(object $item): void { if (!$this->type) { $this->type = get_class($item); } if (!($item instanceof $this->type)) { throw new InvalidArgumentException( sprintf('Item must be an instance of %s. Instance of %s was given instead.', $this->type, get_class($item)) ); } $this->routes[] = $item; } public function dequeue(): object { return array_shift($this->routes); } } final class Route { public $name; public function __construct(string $name) { $this->name = $name; } } final class RouteTwo { public $name = 'two'; } $routeTable = new RouteTable(); $routeTable->enqueue(new Route('one')); //$routeTable->enqueue(new RouteTwo()); // uncomment line to verify that only objects of same type can be added $routeTable->enqueue(new Route('three')); var_dump($routeTable->dequeue()->name); // returns 'one' var_dump($routeTable->dequeue()->name); // returns 'three'