Copied!
  • final
Cloneable Instantiable
Methods
public __construct ( $useCloneMethod = false )
 
public addFilter ( DeepCopy\Filter\Filter $filter , DeepCopy\Matcher\Matcher $matcher )
public addTypeFilter ( DeepCopy\TypeFilter\TypeFilter $filter , DeepCopy\TypeMatcher\TypeMatcher $matcher )
public copy ( $object )
 

Deep copies the given object.

  • return mixed
public prependFilter ( DeepCopy\Filter\Filter $filter , DeepCopy\Matcher\Matcher $matcher )
public skipUncloneable ( $skipUncloneable = true )
 

If enabled, will not throw an exception when coming across an uncloneable property.

  • return $this
Properties
private $filters
 

Filters to apply.

  • var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
private $hashMap
 
  • var object [] List of objects copied.
private $skipUncloneable
 
  • var bool
private $typeFilters
 

Type Filters to apply.

  • var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs.
private $useCloneMethod
 
  • var bool
Methods
private copyArray ( array $array )
 

Copy an array

  • return array
private copyObject ( $object )
 

Copies an object.

  • throws CloneException
  • return object
private copyObjectProperty ( $object , ReflectionProperty $property )
private first ( array $elements , callable $predicate )
 

Returns first element that matches predicate, null if no such element found.

  • return array | null Associative array with 2 members: 'filter' with value of type {@see \TypeFilter} and 'matcher' with value of type {@see \TypeMatcher} or `null`.
private getFirstMatchedTypeFilter ( array $filterRecords , $var )
 

Returns first filter that matches variable, null if no such filter found.

  • return TypeFilter | null
private recursiveCopy ( $var )
© 2021 Bruce Wells
Search Namespaces \ Classes
Configuration