Spec-Zone.ru › Symfony 3.4

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API