name: PropertyAccessor class_comment: "# * Default implementation of {@link PropertyAccessorInterface}.\n\ # *\n# * @author Bernhard Schussek \n# * @author K\xE9vin Dunglas\ \ \n# * @author Nicolas Grekas " 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 \n# * @author K\xE9vin Dunglas\ \ \n# * @author Nicolas Grekas \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