PHP code example of fi1a / collection
1. Go to this page and download the library: Download fi1a/collection library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
fi1a / collection example snippets
use Fi1a\Collection\DataType\ArrayObject;
$arrayObject = new ArrayObject(['foo', 'bar', 'baz',]);
foreach ($arrayObject as $value) {
$value; // 'foo', 'bar', 'baz'
}
count($arrayObject); // 3
use Fi1a\Collection\DataType\MapArrayObject;
$arrayObject = new MapArrayObject();
$arrayObject->add('foo');
$arrayObject->add('bar');
$arrayObject->add('baz');
foreach ($arrayObject as $value) {
$value; // 'foo', 'bar', 'baz'
}
$arrayObject->count(); // 3
use Fi1a\Collection\DataType\PathAccess;
$register = new PathAccess(['foo' => ['bar' => ['baz' => 1], 'qux' => 2,],]);
$register->get('foo:bar:baz'); // 1
$register->get('foo:qux'); // 2
$register->has('foo:bar'); // true
$register->has('foo:bar:baz'); // true
$register->has('foo:bar:baz:bat'); // false
use Fi1a\Collection\DataType\ValueObject;
class Foo extends ValueObject
{
public function getBar(): string
{
return (string) $this->modelGet('bar');
}
public function setBar(string $bar): self
{
$this->modelSet('bar', $bar . 'baz');
return $this;
}
}
$valueObject = new Foo();
$valueObject['bar'] = 'bar';
isset($valueObject['bar']); // true
$valueObject['bar']; // 'barbaz'
$valueObject->getBar(); // 'barbaz'
use Fi1a\Collection\Collection;
$collection = new Collection('string');
$collection[] = 'foo';
$collection->add('bar');
foreach ($collection as $item) {
$item; // 'foo', 'bar'
}
count($collection); // 2
$collection->has(0); // true
$collection->has(1); // true
$collection->has(2); // false
use Fi1a\Collection\AbstractInstanceCollection;
class Foo
{
private $value = null;
public function __construct(string $value)
{
$this->value = $value;
}
public function getValue()
{
return $this->value;
}
}
class FooCollection extends AbstractInstanceCollection
{
public static function factory($key, $value)
{
return new Foo((string) $value);
}
public static function isInstance($value): bool
{
return $value instanceof Foo;
}
}
$collection = new FooCollection(['bar',]);
$collection[] = 'baz';
$collection[] = new Foo('qux');
foreach ($collection as $foo) {
$foo->getValue(); // 'bar', 'baz', 'qux'
}
use Fi1a\Collection\ArrayObjectCollection;
use Fi1a\Collection\DataType\ArrayObject;
$collection = new ArrayObjectCollection([['foo',],]);
$collection[] = ['bar',];
$collection[] = new ArrayObject(['baz',]);
foreach ($collection as $item) {
$item[0]; // 'foo', 'bar', 'baz'
}
count($collection); // 3
use Fi1a\Collection\MapArrayObjectCollection;
use Fi1a\Collection\DataType\MapArrayObject;
$collection = new MapArrayObjectCollection([['foo',],]);
$collection[] = ['bar',];
$collection[] = new MapArrayObject(['baz',]);
foreach ($collection as $item) {
$item->first(); // 'foo', 'bar', 'baz'
}
$collection->count(); // 3
use Fi1a\Collection\PathAccessCollection;
use Fi1a\Collection\DataType\PathAccess;
$collection = new PathAccessCollection([['foo' => ['bar' => 1,],],]);
$collection[] = ['foo' => ['bar' => 2,],];
$collection[] = new PathAccess(['foo' => ['bar' => 3,],]);
foreach ($collection as $item) {
$item->get('foo:bar'); // 1, 2, 3
}
count($collection); // 3
use Fi1a\Collection\Queue;
$queue = new Queue();
$queue->addBegin(1); // true
$queue->addBegin(2); // true
$queue->pollEnd(); // 1
$queue->pollEnd(); // 2
$queue->pollEnd(); // null
$queue->addBegin(3); // true
$queue->pollEnd(); // 3
$queue->pollEnd(); // null
use Fi1a\Collection\TypedValueQueue;
use Fi1a\Collection\Exception\InvalidArgumentException;
$queue = new TypedValueQueue('boolean');
$queue->addBegin(true); // true
$queue->count(); // 1
$queue->addBegin(false); // true
$queue->count(); // 2
try {
$queue->addBegin(10); // throw InvalidArgumentException
} catch (InvalidArgumentException $exception) {
}
use Fi1a\Collection\TypedValueQueue;
use Fi1a\Collection\Exception\InvalidArgumentException;
$queue = new TypedValueQueue(\stdClass::class);
$queue->addBegin(new \stdClass()); // true
try {
$queue->addBegin(10); // throw InvalidArgumentException
} catch (InvalidArgumentException $exception) {
}