1. Go to this page and download the library: Download sebastian/shaku 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/ */
sebastian / shaku example snippets
namespace vendor;
final class Value
{
// ...
}
declare(strict_types=1);
namespace vendor;
final class ValueCollection implements \Countable, \IteratorAggregate
{
/**
* @var Value[]
*/
private $items = [];
public static function fromArray(array $items): self
{
$collection = new self;
foreach ($items as $item) {
$collection->add($item);
}
return $collection;
}
public static function fromList(Value ...$items): self
{
return self::fromArray($items);
}
private function __construct()
{
}
private function add(Value $item): void
{
$this->items[] = $item;
}
/**
* @return Value[]
*/
public function toArray(): array
{
return $this->items;
}
public function getIterator(): ValueCollectionIterator
{
return new ValueCollectionIterator($this);
}
public function count(): int
{
return \count($this->items);
}
public function isEmpty(): bool
{
return empty($this->items);
}
public function contains(Value $item): bool
{
foreach ($this->items as $_item) {
if ($_item === $item) {
return true;
}
}
return false;
}
}
declare(strict_types=1);
namespace vendor;
final class ValueCollectionIterator implements \Countable, \Iterator
{
/**
* @var Value[]
*/
private $items;
/**
* @var int
*/
private $position;
public function __construct(ValueCollection $collection)
{
$this->items = $collection->toArray();
}
public function count(): int
{
return \iterator_count($this);
}
public function rewind(): void
{
$this->position = 0;
}
public function valid(): bool
{
return $this->position < \count($this->items);
}
public function key(): int
{
return $this->position;
}
public function current(): Value
{
return $this->items[$this->position];
}
public function next(): void
{
$this->position++;
}
}
$values = ValueCollection::fromArray([new Value, new Value]);
$values = ValueCollection::fromList(new Value, new Value);
$values = new ValueCollection;
$values->add(new Value);
$values->add(new Value);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.