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 = array()) | |
| 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 = array())
Параметры
| $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.4/Symfony/Component/PropertyAccess/PropertyAccessor.html