Collection

PHP stellt mit Arrays schon eine mächtiges Sprachelement zur Verfügung, mit denen verschiedene Aufgaben schnell und effizient umgesetzt werden können.

Erweiterung

Für die Verwaltung von Objekten stellt Alvine mit der Klasse Collection eine Erweiterung des Array-Konzeptes zur Verfügung. Mit der Übergabe eines Klassennamens beim Anlegen einer Kollektion, kann man diese Collection auf diesen Typ begrenzen. Beim Zuweisen eines anderen Typs wird eine TypeException geworfen.

$collection = new Alvine\Types\Collection('\Alvine\Types\Integer');
$collection->append(new \Alvine\Types\Integer(10));
$collection->append(new \Alvine\Types\StringType('HelloWorld'));  // TypeException() 

Über die mitgelieferte each-Funktion kann auf die einzelnen Objekte schnell zugegriffen werden.

$collection = new Alvine\Types\Collection('\Alvine\Types\Integer');
$collection->append(new \Alvine\Types\Integer(10));
$collection->append(new \Alvine\Types\Integer(20));
$sum = 0;
$collection->each(function($obj) use (&$sum) {
    $sum += $obj->integer; 
});
echo $sum; // 35