graze/data-structure
最新稳定版本:2.1.0
Composer 安装命令:
composer require graze/data-structure
包简介
Data collections and containers
README 文档
README
This library implements common data collections and containers in PHP.
Install
It can be installed in whichever way you prefer, but we recommend Composer.
$ composer require graze/data-structure
Usage
<?php use Graze\DataStructure\Collection\Collection; use Graze\DataStructure\Container\Container; use Graze\DataStructure\Container\FlatContainer; // Collection $collection = new Collection(['foo', 'bar']); $collection->add('baz'); $collection->contains('baz'); $collection->getAll(); $collection->filter(function ($item) {}); $collection->map(function ($item) {}); $collection->reduce(function ($res, $item) {}); $collection->sort(function ($itemA, $itemB) {}); $collection->sortOn(function ($item) {}); // Container $container = new Container(['foo' => 0, 'bar' => 1]); $container->add('baz', 2); $container->has('baz'); $container->forAll(function ($value, $key) {}); $container->get('baz'); $container->set('bam', 3); $container->remove('bam'); // FlatContainer $container = new FlatContainer(['foo' => 0, 'bar' => ['child' => 'arr'], 'baz' => new Container(['ack' => 'bar'])]); $container->has('bar.child'); $container->has('baz.ack'); $container->get('bar.child'); $container->get('baz.ack'); $container->set('bar.other', 'more'); $container->remove('baz.ack');
Immutable structures
<?php use Graze\DataStructure\Collection\ImmutableCollection; use Graze\DataStructure\Container\ImmutableContainer; use Graze\DataStructure\Container\ImmutableFlatContainer; // Immutable collection $collection = new ImmutableCollection(['foo', 'bar']); $collection = $collection->add('baz'); $collection = $collection->filter(function ($item) {}); $collection = $collection->sort(function ($itemA, $itemB) {}); $collection = $collection->sortOn(function ($item) {}); // Immutable container $container = new ImmutableContainer(['foo' => 0, 'bar' => 1]); $container = $container->add('baz', 2); $container = $container->set('bam', 3); $container = $container->remove('bam'); // Immutable flat container $container = new ImmutableFlatContainer(['foo' => 0, 'bar' => ['child' => 'arr'], 'baz' => new ImmutableContainer(['ack' => 'bar'])]); $container = $container->add('a.new.array', 'more'); $container = $container->set('bar.other', 'more'); $container = $container->remove('baz.ack');
Contributing
Contributions are accepted via Pull Request, but passing unit tests must be included before it will be considered for merge.
$ make
$ make test
License
The content of this library is released under the MIT License by
Nature Delivered Ltd.
You can find a copy of this license at
http://www.opensource.org/licenses/mit or in LICENSE.
统计信息
- 总下载量: 280.85k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 1
- 依赖项目数: 7
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2013-08-19