PropertyAccessorInterface
интерфейс PropertyAccessorInterface
Запись и чтение значений в/из графа объектов/массивов.
Методы
| setValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath, mixed $value) Устанавливает значение в конце пути свойства графа объектов. | ||
| mixed | getValue(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает значение в конце пути свойства графа объектов. | |
| bool | isWritable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает, можно ли записать значение по заданному пути свойства. | |
| bool | isReadable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath) Возвращает, можно ли прочитать путь свойства из графа объектов. |
Подробности
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 | Если значение в пути не является объектом или массивом |
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 | Если значение в пути не является объектом или массивом |
bool isWritable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath)
Возвращает, можно ли записать значение по заданному пути свойства.
Всякий раз, когда этот метод возвращает true, {@link setValue()} гарантированно не выбросит исключение при вызове с теми же аргументами.
Параметры
| object|array | $objectOrArray | Объект или массив для проверки |
| string|PropertyPathInterface | $propertyPath | Путь свойства для проверки |
Возвращаемое значение
| bool | Можно ли установить значение |
Исключения
| InvalidArgumentException | Если путь свойства недействителен |
bool isReadable(object|array $objectOrArray, string|PropertyPathInterface $propertyPath)
Возвращает, можно ли прочитать путь свойства из графа объектов.
Всякий раз, когда этот метод возвращает true, {@link getValue()} гарантированно не выбросит исключение при вызове с теми же аргументами.
Параметры
| object|array | $objectOrArray | Объект или массив для проверки |
| string|PropertyPathInterface | $propertyPath | Путь свойства для проверки |
Возвращаемое значение
| bool | Можно ли прочитать путь свойства |
Исключения
| InvalidArgumentException | Если путь свойства недействителен |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/PropertyAccess/PropertyAccessorInterface.html