collection-interop/stack
Composer 安装命令:
composer require collection-interop/stack
包简介
An interface describing the behaviours of a 'stack' abstract data type (ADT).
README 文档
README
An interface describing the behaviours of a 'stack' abstract data type (ADT).
Installation
The best way to use these interfaces in your project/library, is via Composer:
$ composer require collection-interop/stack
Usage
final class DeviceHistory implements \Interop\Collection\Stack { private $commands = []; private $type = ''; public function push(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->commands[] = $item; } public function pop(): object { return array_pop($this->commands); } } final class Command { public $action; public function __construct(string $action) { $this->action = $action; } } final class TurnOffCommand { public $action = 'turn-off'; } $history = new DeviceHistory(); $history->push(new Command('turn-on')); //$history->push(new TurnOffCommand()); // uncomment line to verify that only objects of same type can be added $history->push(new Command('change-channel')); var_dump($history->pop()); // returns 'change-channel' var_dump($history->pop()); // returns 'turn-on'
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-08-03