Есть коллекция основанная на
arrayObject<?php
/**
* Created by PhpStorm.
* User: mozil
* Date: 07-Nov-18
* Time: 11:19
*/
namespace Main\Entity\EntityCollection;
abstract class CollectionOfEntity extends \ArrayObject
{
private $className;
public function __construct(string $className)
{
$this->className = $className;
parent::__construct([], \ArrayObject::STD_PROP_LIST);
}
public function offsetSet($offset, $value)
{
if (!is_object($value) || !is_a($value, $this->className)) {
throw new Exception('object must be a ' . $this->className);
}
parent::offsetSet($offset, $value);
}
}
Есть необходимость перемешать такую коллекцию. shuffle её не переваривает
Warning: shuffle() expects parameter 1 to be array, object given
Я использовал arrayObject в надежде на максимальную совместимость с функциями для работы с массивами, но надежды не оправдались. Как вариант, приму совет, как по-другому организовать коллекцию.