PropertyAccessor
in package
implements
PropertyAccessorInterface
Default implementation of {@link PropertyAccessorInterface}.
Tags
Interfaces, Classes, Traits and Enums
- PropertyAccessorInterface
- Writes and reads values to/from an object/array graph.
Table of Contents
- ACCESS_ADDER = 4
- ACCESS_HAS_PROPERTY = 0
- ACCESS_NAME = 2
- ACCESS_REF = 3
- ACCESS_REMOVER = 5
- ACCESS_TYPE = 1
- ACCESS_TYPE_ADDER_AND_REMOVER = 3
- ACCESS_TYPE_MAGIC = 2
- ACCESS_TYPE_METHOD = 0
- ACCESS_TYPE_NOT_FOUND = 4
- ACCESS_TYPE_PROPERTY = 1
- CACHE_PREFIX_PROPERTY_PATH = 'p'
- CACHE_PREFIX_READ = 'r'
- CACHE_PREFIX_WRITE = 'w'
- IS_REF_CHAINED = 2
- REF = 1
- RESULT_PROTO = [self::VALUE => null]
- VALUE = 0
- $cacheItemPool : CacheItemPoolInterface
- $ignoreInvalidIndices : mixed
- $ignoreInvalidProperty : mixed
- $magicCall : bool
- $propertyPathCache : mixed
- $readPropertyCache : mixed
- $writePropertyCache : mixed
- __construct() : mixed
- Should not be used by application code. Use {@link PropertyAccess::createPropertyAccessor()} instead.
- createCache() : AdapterInterface
- Creates the APCu adapter if applicable.
- getValue() : mixed
- Returns the value at the end of the property path of the object graph.
- isReadable() : bool
- Returns whether a property path can be read from an object graph.
- isWritable() : bool
- Returns whether a value can be written at a given property path.
- setValue() : mixed
- Sets the value at the end of the property path of the object graph.
- camelize() : string
- Camelizes a given string.
- findAdderAndRemover() : iteratable<string|int, mixed>
- Searches for add and remove methods.
- getPropertyPath() : PropertyPath
- Gets a PropertyPath instance and caches it.
- getReadAccessInfo() : array<string|int, mixed>
- Guesses how to read the property value.
- getWriteAccessInfo() : array<string|int, mixed>
- Guesses how to write the property value.
- isMethodAccessible() : bool
- Returns whether a method is public and has the number of required parameters.
- isPropertyWritable() : bool
- Returns whether a property is writable in the given object.
- readIndex() : array<string|int, mixed>
- Reads a key from an array-like structure.
- readPropertiesUntil() : array<string|int, mixed>
- Reads the path from an object up to a given path index.
- readProperty() : array<string|int, mixed>
- Reads the a property from an object.
- throwInvalidArgumentException() : void
- writeCollection() : mixed
- Adjusts a collection-valued property by calling add*() and remove*() methods.
- writeIndex() : mixed
- Sets the value of an index in a given array-accessible value.
- writeProperty() : mixed
- Sets the value of a property in the given object.
Constants
ACCESS_ADDER
private
mixed
ACCESS_ADDER
= 4
ACCESS_HAS_PROPERTY
private
mixed
ACCESS_HAS_PROPERTY
= 0
ACCESS_NAME
private
mixed
ACCESS_NAME
= 2
ACCESS_REF
private
mixed
ACCESS_REF
= 3
ACCESS_REMOVER
private
mixed
ACCESS_REMOVER
= 5
ACCESS_TYPE
private
mixed
ACCESS_TYPE
= 1
ACCESS_TYPE_ADDER_AND_REMOVER
private
mixed
ACCESS_TYPE_ADDER_AND_REMOVER
= 3
ACCESS_TYPE_MAGIC
private
mixed
ACCESS_TYPE_MAGIC
= 2
ACCESS_TYPE_METHOD
private
mixed
ACCESS_TYPE_METHOD
= 0
ACCESS_TYPE_NOT_FOUND
private
mixed
ACCESS_TYPE_NOT_FOUND
= 4
ACCESS_TYPE_PROPERTY
private
mixed
ACCESS_TYPE_PROPERTY
= 1
CACHE_PREFIX_PROPERTY_PATH
private
mixed
CACHE_PREFIX_PROPERTY_PATH
= 'p'
CACHE_PREFIX_READ
private
mixed
CACHE_PREFIX_READ
= 'r'
CACHE_PREFIX_WRITE
private
mixed
CACHE_PREFIX_WRITE
= 'w'
IS_REF_CHAINED
private
mixed
IS_REF_CHAINED
= 2
REF
private
mixed
REF
= 1
RESULT_PROTO
private
mixed
RESULT_PROTO
= [self::VALUE => null]
VALUE
private
mixed
VALUE
= 0
Properties
$cacheItemPool
private
CacheItemPoolInterface
$cacheItemPool
$ignoreInvalidIndices
private
mixed
$ignoreInvalidIndices
$ignoreInvalidProperty
private
mixed
$ignoreInvalidProperty
$magicCall
private
bool
$magicCall
$propertyPathCache
private
mixed
$propertyPathCache
= []
$readPropertyCache
private
mixed
$readPropertyCache
= []
$writePropertyCache
private
mixed
$writePropertyCache
= []
Methods
__construct()
Should not be used by application code. Use {@link PropertyAccess::createPropertyAccessor()} instead.
public
__construct([bool $magicCall = false ][, bool $throwExceptionOnInvalidIndex = false ][, CacheItemPoolInterface $cacheItemPool = null ][, bool $throwExceptionOnInvalidPropertyPath = true ]) : mixed
Parameters
- $magicCall : bool = false
- $throwExceptionOnInvalidIndex : bool = false
- $cacheItemPool : CacheItemPoolInterface = null
- $throwExceptionOnInvalidPropertyPath : bool = true
Return values
mixed —createCache()
Creates the APCu adapter if applicable.
public
static createCache(string $namespace, int $defaultLifetime, string $version[, LoggerInterface $logger = null ]) : AdapterInterface
Parameters
- $namespace : string
- $defaultLifetime : int
- $version : string
- $logger : LoggerInterface = null
Tags
Return values
AdapterInterface —getValue()
Returns the value at the end of the property path of the object graph.
public
getValue(mixed $objectOrArray, mixed $propertyPath) : mixed
Parameters
- $objectOrArray : mixed
-
The object or array to traverse
- $propertyPath : mixed
-
The property path to read
Return values
mixed —The value at the end of the property path
isReadable()
Returns whether a property path can be read from an object graph.
public
isReadable(mixed $objectOrArray, mixed $propertyPath) : bool
Parameters
- $objectOrArray : mixed
-
The object or array to check
- $propertyPath : mixed
-
The property path to check
Return values
bool —Whether the property path can be read
isWritable()
Returns whether a value can be written at a given property path.
public
isWritable(mixed $objectOrArray, mixed $propertyPath) : bool
Parameters
- $objectOrArray : mixed
-
The object or array to check
- $propertyPath : mixed
-
The property path to check
Return values
bool —Whether the value can be set
setValue()
Sets the value at the end of the property path of the object graph.
public
setValue(mixed &$objectOrArray, mixed $propertyPath, mixed $value) : mixed
Parameters
- $objectOrArray : mixed
-
The object or array to modify
- $propertyPath : mixed
-
The property path to modify
- $value : mixed
-
The value to set at the end of the property path
Return values
mixed —camelize()
Camelizes a given string.
private
camelize(string $string) : string
Parameters
- $string : string
Return values
string —findAdderAndRemover()
Searches for add and remove methods.
private
findAdderAndRemover(ReflectionClass $reflClass, array<string|int, mixed> $singulars) : iteratable<string|int, mixed>
Parameters
- $reflClass : ReflectionClass
- $singulars : array<string|int, mixed>
Return values
iteratable<string|int, mixed> —getPropertyPath()
Gets a PropertyPath instance and caches it.
private
getPropertyPath(string|PropertyPath $propertyPath) : PropertyPath
Parameters
- $propertyPath : string|PropertyPath
Return values
PropertyPath —getReadAccessInfo()
Guesses how to read the property value.
private
getReadAccessInfo(string $class, string $property) : array<string|int, mixed>
Parameters
- $class : string
- $property : string
Return values
array<string|int, mixed> —getWriteAccessInfo()
Guesses how to write the property value.
private
getWriteAccessInfo(string $class, string $property, mixed $value) : array<string|int, mixed>
Parameters
- $class : string
- $property : string
- $value : mixed
Return values
array<string|int, mixed> —isMethodAccessible()
Returns whether a method is public and has the number of required parameters.
private
isMethodAccessible(ReflectionClass $class, string $methodName, int $parameters) : bool
Parameters
- $class : ReflectionClass
- $methodName : string
- $parameters : int
Return values
bool —isPropertyWritable()
Returns whether a property is writable in the given object.
private
isPropertyWritable(object $object, string $property) : bool
Parameters
- $object : object
-
The object to write to
- $property : string
Return values
bool —readIndex()
Reads a key from an array-like structure.
private
readIndex(array<string|int, mixed> $zval, string|int $index) : array<string|int, mixed>
Parameters
- $zval : array<string|int, mixed>
- $index : string|int
-
The key to read
Tags
Return values
array<string|int, mixed> —readPropertiesUntil()
Reads the path from an object up to a given path index.
private
readPropertiesUntil(array<string|int, mixed> $zval, PropertyPathInterface $propertyPath, int $lastIndex[, bool $ignoreInvalidIndices = true ]) : array<string|int, mixed>
Parameters
- $zval : array<string|int, mixed>
- $propertyPath : PropertyPathInterface
- $lastIndex : int
- $ignoreInvalidIndices : bool = true
Tags
Return values
array<string|int, mixed> —readProperty()
Reads the a property from an object.
private
readProperty(array<string|int, mixed> $zval, string $property[, bool $ignoreInvalidProperty = false ]) : array<string|int, mixed>
Parameters
- $zval : array<string|int, mixed>
- $property : string
- $ignoreInvalidProperty : bool = false
Tags
Return values
array<string|int, mixed> —throwInvalidArgumentException()
private
static throwInvalidArgumentException(string $message, array<string|int, mixed> $trace, int $i, string $propertyPath[, Throwable $previous = null ]) : void
Parameters
- $message : string
- $trace : array<string|int, mixed>
- $i : int
- $propertyPath : string
- $previous : Throwable = null
Return values
void —writeCollection()
Adjusts a collection-valued property by calling add*() and remove*() methods.
private
writeCollection(array<string|int, mixed> $zval, string $property, iteratable<string|int, mixed> $collection, string $addMethod, string $removeMethod) : mixed
Parameters
- $zval : array<string|int, mixed>
- $property : string
- $collection : iteratable<string|int, mixed>
- $addMethod : string
- $removeMethod : string
Return values
mixed —writeIndex()
Sets the value of an index in a given array-accessible value.
private
writeIndex(array<string|int, mixed> $zval, string|int $index, mixed $value) : mixed
Parameters
- $zval : array<string|int, mixed>
- $index : string|int
-
The index to write at
- $value : mixed
-
The value to write
Tags
Return values
mixed —writeProperty()
Sets the value of a property in the given object.
private
writeProperty(array<string|int, mixed> $zval, string $property, mixed $value) : mixed
Parameters
- $zval : array<string|int, mixed>
- $property : string
- $value : mixed
-
The value to write