A set of interfaces and traits to speed up the creation of collections.
- PHP >= 5.4
The recommended way to install is through composer.
Just create a composer.json
file for your project:
{
"require": {
"ebidtech/collection": "@stable"
}
}
Tip: browse ebidtech/collection
page to choose a stable version to use, avoid the @stable
meta constraint.
And run these two commands to install it:
$ curl -sS https://getcomposer.org/installer | php
$ composer install
Now you can add the autoloader, and you will have access to the library:
<?php
require 'vendor/autoload.php';
Collection class example:
use EBT\Collection\CollectionDirectAccessInterface;
use EBT\Collection\CountableTrait;
use EBT\Collection\DirectAccessTrait;
use EBT\Collection\EmptyTrait;
use EBT\Collection\GetItemsTrait;
use EBT\Collection\IterableTrait;
/**
* TestCollection
*/
class TestCollection implements CollectionDirectAccessInterface
{
use CountableTrait;
use DirectAccessTrait;
use EmptyTrait;
use GetItemsTrait;
use IterableTrait;
/**
* @var array
*/
protected $items = array(
'test1' => 'val1',
'test2' => 'val2',
'test3' => 'val3'
);
}
From outside you can:
- iterate (due to IterableTrait)
- direct access using get() (due to DirectAccessTrait)
- use count() (due to CountableTrait)
Outside access example:
$collection = new TestCollection();
echo count($collection); // will print 3
echo $collection->get('test1'); // will print val1
foreach ($collection as $key => $val) {
// will result in:
// test1 val1
// test2 val2
// test3 val3
echo sprintf("%s %s", $key, $val);
}
Notes:
- Traits use have an abstract getCollection() method that needs to be implemented on collection class, the GetCollectionTrait makes a simple implementation, you can override it if the property that holds the internal array is not named collection
See CONTRIBUTING file.
- Ebidtech developer team, collection Lead developer Eduardo Oliveira ([email protected]).
- All contributors
Collection library is released under the MIT License. See the bundled LICENSE file for details.