Example #1
0
 /**
  * Creates a deep clone of the given collection
  *
  * @param Database|Iterator $originalCollection
  * @return \SplObjectStorage
  */
 protected function _cloneCollection($originalCollection)
 {
     // If the collection is immutable just return it
     if ($originalCollection instanceof Immutable) {
         return $originalCollection;
     }
     if ($originalCollection instanceof DatabaseInterface) {
         return clone $originalCollection;
     }
     $collection = new SplFixedArray($originalCollection->count());
     $i = 0;
     foreach ($originalCollection as $item) {
         $collection[$i] = clone $item;
         $i++;
     }
     $collection->rewind();
     return $collection;
 }