PropertyAccessor
class PropertyAccessor implements PropertyAccessorInterface
Базовая реализация {@link PropertyAccessorInterface}.
Постоянные значения
| VALUE | |
| REF | |
| IS_REF_CHAINED | |
| ACCESS_HAS_PROPERTY | |
| ACCESS_TYPE | |
| ACCESS_NAME | |
| ACCESS_REF | |
| ACCESS_ADDER | |
| ACCESS_REMOVER | |
| ACCESS_TYPE_METHOD | |
| ACCESS_TYPE_PROPERTY | |
| ACCESS_TYPE_MAGIC | |
| ACCESS_TYPE_ADDER_AND_REMOVER | |
| ACCESS_TYPE_NOT_FOUND | |
| CACHE_PREFIX_READ | |
| CACHE_PREFIX_WRITE | |
| CACHE_PREFIX_PROPERTY_PATH |
Методы
| __construct(bool $magicCall = false, bool $throwExceptionOnInvalidIndex = false, CacheItemPoolInterface $cacheItemPool = null) Не должно использоваться в прикладном коде. Используйте {@link PropertyAccess::createPropertyAccessor()} вместо этого. | ||
| mixed | getValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает значение в конце пути к свойству в объектной графе. | |
| setValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath, mixed $value) Устанавливает значение в конце пути к свойству в объектной графе. | ||
| static | handleError($type, $message, $file, $line, $context) | |
| bool | isReadable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает, можно ли считать свойство по пути из объектной графы. | |
| bool | isWritable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает, можно ли записать значение по заданному пути к свойству. | |
| static AdapterInterface | createCache(string $namespace, int $defaultLifetime, string $version, LoggerInterface $logger = null) Создаёт адаптер APCu, если применимо. |
Подробности
__construct(bool $magicCall = false, bool $throwExceptionOnInvalidIndex = false, CacheItemPoolInterface $cacheItemPool = null)
Не должно использоваться кодом приложения. Используйте {@link PropertyAccess::createPropertyAccessor()} вместо этого.
Параметры
| bool | $magicCall | |
| bool | $throwExceptionOnInvalidIndex | |
| CacheItemPoolInterface | $cacheItemPool |
mixed getValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath)
Возвращает значение в конце пути свойств графа объекта.
Пример:
use Symfony\Component\PropertyAccess\PropertyAccess;
$propertyAccessor = PropertyAccess::createPropertyAccessor();
echo $propertyAccessor->getValue($object, 'child.name);
// equals echo $object->getChild()->getName();
Этот метод сначала пытается найти публичный геттер для каждого свойства в пути. Имя геттера должно быть именованным свойством с заглавной буквы, префиксным "get", "is" или "has".
Если геттер не существует, этот метод пытается найти публичное свойство. Затем возвращается значение свойства.
Если ни одно из них не найдено, выбрасывается исключение.
Параметры
| object|array | $objectOrArray | Объект или массив для обхода |
| string|PropertyPathInterface | $propertyPath | Путь к свойству для чтения |
Значение возврата
| mixed | Значение в конце пути свойства |
Исключения
| InvalidArgumentException | Если путь к свойству некорректен |
| AccessException | Если свойство/индекс не существует или не является публичным |
| UnexpectedTypeException | Если значение внутри пути не является объектом или массивом |
setValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath, mixed $value)
Устанавливает значение в конце пути свойства графа объекта.
Пример:
use Symfony\Component\PropertyAccess\PropertyAccess;
$propertyAccessor = PropertyAccess::createPropertyAccessor();
echo $propertyAccessor->setValue($object, 'child.name', 'Fabien');
// equals echo $object->getChild()->setName('Fabien');
Этот метод сначала пытается найти публичный сеттер для каждого свойства в пути. Имя сеттера должно быть именованным свойством с заглавной буквы, префиксным "set".
Если сеттер не существует, этот метод пытается найти публичное свойство. Затем значение свойства изменяется.
Если ни одно из них не найдено, выбрасывается исключение.
Параметры
| object|array | $objectOrArray | Объект или массив для изменения |
| string|PropertyPathInterface | $propertyPath | Путь к свойству для изменения |
| mixed | $value | Значение для установки в конце пути свойства |
Исключения
| InvalidArgumentException | Если путь к свойству некорректен |
| AccessException | Если свойство/индекс не существует или не является публичным |
| UnexpectedTypeException | Если значение внутри пути не является объектом или массивом |
static handleError($type, $message, $file, $line, $context)
Параметры
| $type | ||
| $message | ||
| $file | ||
| $line | ||
| $context |
bool isReadable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath)
Возвращает, можно ли считать путь к свойству из графа объекта.
Всякий раз, когда этот метод возвращает true, {@link getValue()} гарантированно не выбросит исключение при вызове с теми же аргументами.
Параметры
| object|array | $objectOrArray | Объект или массив для проверки |
| string|PropertyPathInterface | $propertyPath | Путь к свойству для проверки |
Значение возврата
| bool | Можно ли считать путь к свойству |
Исключения
| InvalidArgumentException | Если путь к свойству некорректен |
bool isWritable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath)
Возвращает, можно ли записать значение по заданному пути к свойству.
Всякий раз, когда этот метод возвращает true, {@link setValue()} гарантированно не выбросит исключение при вызове с теми же аргументами.
Параметры
| object|array | $objectOrArray | Объект или массив для проверки |
| string|PropertyPathInterface | $propertyPath | Путь к свойству для проверки |
Значение возврата
| bool | Можно ли установить значение |
Исключения
| InvalidArgumentException | Если путь к свойству некорректен |
static AdapterInterface createCache(string $namespace, int $defaultLifetime, string $version, LoggerInterface $logger = null)
Создает адаптер APCu, если применимо.
Параметры
| string | $namespace | |
| int | $defaultLifetime | |
| string | $version | |
| LoggerInterface | $logger |
Значение возврата
| AdapterInterface |
Исключения
| RuntimeException | Когда компонент кэша недоступен |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.2/Symfony/Component/PropertyAccess/PropertyAccessor.html