266 lines
9 KiB
YAML
266 lines
9 KiB
YAML
|
name: PropertyAccessor
|
||
|
class_comment: "# * Default implementation of {@link PropertyAccessorInterface}.\n\
|
||
|
# *\n# * @author Bernhard Schussek <bschussek@gmail.com>\n# * @author K\xE9vin Dunglas\
|
||
|
\ <dunglas@gmail.com>\n# * @author Nicolas Grekas <p@tchwork.com>"
|
||
|
dependencies:
|
||
|
- name: CacheItemPoolInterface
|
||
|
type: class
|
||
|
source: Psr\Cache\CacheItemPoolInterface
|
||
|
- name: LoggerInterface
|
||
|
type: class
|
||
|
source: Psr\Log\LoggerInterface
|
||
|
- name: NullLogger
|
||
|
type: class
|
||
|
source: Psr\Log\NullLogger
|
||
|
- name: AdapterInterface
|
||
|
type: class
|
||
|
source: Symfony\Component\Cache\Adapter\AdapterInterface
|
||
|
- name: ApcuAdapter
|
||
|
type: class
|
||
|
source: Symfony\Component\Cache\Adapter\ApcuAdapter
|
||
|
- name: NullAdapter
|
||
|
type: class
|
||
|
source: Symfony\Component\Cache\Adapter\NullAdapter
|
||
|
- name: AccessException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\AccessException
|
||
|
- name: InvalidTypeException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\InvalidTypeException
|
||
|
- name: NoSuchIndexException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\NoSuchIndexException
|
||
|
- name: NoSuchPropertyException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException
|
||
|
- name: UnexpectedTypeException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\UnexpectedTypeException
|
||
|
- name: UninitializedPropertyException
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException
|
||
|
- name: ReflectionExtractor
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor
|
||
|
- name: PropertyReadInfo
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyInfo\PropertyReadInfo
|
||
|
- name: PropertyReadInfoExtractorInterface
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface
|
||
|
- name: PropertyWriteInfo
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyInfo\PropertyWriteInfo
|
||
|
- name: PropertyWriteInfoExtractorInterface
|
||
|
type: class
|
||
|
source: Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface
|
||
|
properties: []
|
||
|
methods:
|
||
|
- name: __construct
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: magicMethodsFlags
|
||
|
default: self::MAGIC_GET | self::MAGIC_SET
|
||
|
- name: throw
|
||
|
default: self::THROW_ON_INVALID_PROPERTY_PATH
|
||
|
- name: cacheItemPool
|
||
|
default: 'null'
|
||
|
- name: readInfoExtractor
|
||
|
default: 'null'
|
||
|
- name: writeInfoExtractor
|
||
|
default: 'null'
|
||
|
comment: "# * Default implementation of {@link PropertyAccessorInterface}.\n# *\n\
|
||
|
# * @author Bernhard Schussek <bschussek@gmail.com>\n# * @author K\xE9vin Dunglas\
|
||
|
\ <dunglas@gmail.com>\n# * @author Nicolas Grekas <p@tchwork.com>\n# */\n# class\
|
||
|
\ PropertyAccessor implements PropertyAccessorInterface\n# {\n# /** @var int Allow\
|
||
|
\ none of the magic methods */\n# public const DISALLOW_MAGIC_METHODS = ReflectionExtractor::DISALLOW_MAGIC_METHODS;\n\
|
||
|
# /** @var int Allow magic __get methods */\n# public const MAGIC_GET = ReflectionExtractor::ALLOW_MAGIC_GET;\n\
|
||
|
# /** @var int Allow magic __set methods */\n# public const MAGIC_SET = ReflectionExtractor::ALLOW_MAGIC_SET;\n\
|
||
|
# /** @var int Allow magic __call methods */\n# public const MAGIC_CALL = ReflectionExtractor::ALLOW_MAGIC_CALL;\n\
|
||
|
# \n# public const DO_NOT_THROW = 0;\n# public const THROW_ON_INVALID_INDEX =\
|
||
|
\ 1;\n# public const THROW_ON_INVALID_PROPERTY_PATH = 2;\n# \n# private const\
|
||
|
\ VALUE = 0;\n# private const REF = 1;\n# private const IS_REF_CHAINED = 2;\n\
|
||
|
# private const CACHE_PREFIX_READ = 'r';\n# private const CACHE_PREFIX_WRITE =\
|
||
|
\ 'w';\n# private const CACHE_PREFIX_PROPERTY_PATH = 'p';\n# private const RESULT_PROTO\
|
||
|
\ = [self::VALUE => null];\n# \n# private bool $ignoreInvalidIndices;\n# private\
|
||
|
\ bool $ignoreInvalidProperty;\n# private ?CacheItemPoolInterface $cacheItemPool;\n\
|
||
|
# private array $propertyPathCache = [];\n# private PropertyReadInfoExtractorInterface\
|
||
|
\ $readInfoExtractor;\n# private PropertyWriteInfoExtractorInterface $writeInfoExtractor;\n\
|
||
|
# private array $readPropertyCache = [];\n# private array $writePropertyCache\
|
||
|
\ = [];\n# \n# /**\n# * Should not be used by application code. Use\n# * {@link\
|
||
|
\ PropertyAccess::createPropertyAccessor()} instead.\n# *\n# * @param int $magicMethods\
|
||
|
\ A bitwise combination of the MAGIC_* constants\n# * \
|
||
|
\ to specify the allowed magic methods (__get, __set, __call)\n# * \
|
||
|
\ or self::DISALLOW_MAGIC_METHODS for none\n# * @param int $throw\
|
||
|
\ A bitwise combination of the THROW_* constants\n# * \
|
||
|
\ to specify when exceptions should be thrown"
|
||
|
- name: getValue
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: objectOrArray
|
||
|
- name: propertyPath
|
||
|
comment: null
|
||
|
- name: setValue
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: '&$objectOrArray'
|
||
|
- name: propertyPath
|
||
|
- name: value
|
||
|
comment: null
|
||
|
- name: throwInvalidArgumentException
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: message
|
||
|
- name: trace
|
||
|
- name: i
|
||
|
- name: propertyPath
|
||
|
- name: previous
|
||
|
default: 'null'
|
||
|
comment: null
|
||
|
- name: isReadable
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: objectOrArray
|
||
|
- name: propertyPath
|
||
|
comment: null
|
||
|
- name: isWritable
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: objectOrArray
|
||
|
- name: propertyPath
|
||
|
comment: null
|
||
|
- name: readPropertiesUntil
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: propertyPath
|
||
|
- name: lastIndex
|
||
|
- name: ignoreInvalidIndices
|
||
|
default: 'true'
|
||
|
comment: '# * Reads the path from an object up to a given path index.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws UnexpectedTypeException if a value within the path is neither object
|
||
|
nor array
|
||
|
|
||
|
# * @throws NoSuchIndexException If a non-existing index is accessed'
|
||
|
- name: readIndex
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: index
|
||
|
comment: '# * Reads a key from an array-like structure.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws NoSuchIndexException If the array does not implement \ArrayAccess
|
||
|
or it is not an array'
|
||
|
- name: readProperty
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: property
|
||
|
- name: ignoreInvalidProperty
|
||
|
default: 'false'
|
||
|
- name: isNullSafe
|
||
|
default: 'false'
|
||
|
comment: '# * Reads the value of a property from an object.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws NoSuchPropertyException If $ignoreInvalidProperty is false and the
|
||
|
property does not exist or is not public'
|
||
|
- name: getReadInfo
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: class
|
||
|
- name: property
|
||
|
comment: '# * Guesses how to read the property value.'
|
||
|
- name: writeIndex
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: index
|
||
|
- name: value
|
||
|
comment: '# * Sets the value of an index in a given array-accessible value.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws NoSuchIndexException If the array does not implement \ArrayAccess
|
||
|
or it is not an array'
|
||
|
- name: writeProperty
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: property
|
||
|
- name: value
|
||
|
- name: recursive
|
||
|
default: 'false'
|
||
|
comment: '# * Sets the value of a property in the given object.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws NoSuchPropertyException if the property does not exist or is not public'
|
||
|
- name: writeCollection
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: zval
|
||
|
- name: property
|
||
|
- name: collection
|
||
|
- name: addMethod
|
||
|
- name: removeMethod
|
||
|
comment: '# * Adjusts a collection-valued property by calling add*() and remove*()
|
||
|
methods.'
|
||
|
- name: getWriteInfo
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: class
|
||
|
- name: property
|
||
|
- name: value
|
||
|
comment: null
|
||
|
- name: isPropertyWritable
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: object
|
||
|
- name: property
|
||
|
comment: '# * Returns whether a property is writable in the given object.'
|
||
|
- name: getPropertyPath
|
||
|
visibility: private
|
||
|
parameters:
|
||
|
- name: propertyPath
|
||
|
comment: '# * Gets a PropertyPath instance and caches it.'
|
||
|
- name: createCache
|
||
|
visibility: public
|
||
|
parameters:
|
||
|
- name: namespace
|
||
|
- name: defaultLifetime
|
||
|
- name: version
|
||
|
- name: logger
|
||
|
default: 'null'
|
||
|
comment: '# * Creates the APCu adapter if applicable.
|
||
|
|
||
|
# *
|
||
|
|
||
|
# * @throws \LogicException When the Cache Component isn''t available'
|
||
|
traits:
|
||
|
- Psr\Cache\CacheItemPoolInterface
|
||
|
- Psr\Log\LoggerInterface
|
||
|
- Psr\Log\NullLogger
|
||
|
- Symfony\Component\Cache\Adapter\AdapterInterface
|
||
|
- Symfony\Component\Cache\Adapter\ApcuAdapter
|
||
|
- Symfony\Component\Cache\Adapter\NullAdapter
|
||
|
- Symfony\Component\PropertyAccess\Exception\AccessException
|
||
|
- Symfony\Component\PropertyAccess\Exception\InvalidTypeException
|
||
|
- Symfony\Component\PropertyAccess\Exception\NoSuchIndexException
|
||
|
- Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException
|
||
|
- Symfony\Component\PropertyAccess\Exception\UnexpectedTypeException
|
||
|
- Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException
|
||
|
- Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor
|
||
|
- Symfony\Component\PropertyInfo\PropertyReadInfo
|
||
|
- Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface
|
||
|
- Symfony\Component\PropertyInfo\PropertyWriteInfo
|
||
|
- Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface
|
||
|
interfaces:
|
||
|
- PropertyAccessorInterface
|