https://symfony.com/doc/current/components/property_access.html PropertyAccess — это компонент Symfony, который позволяет единообразно читать и записывать значения свойств объектов и массивов, независимо от того, как они реализованы: через публичные свойства, геттеры/сеттеры, магические методы (__get, __set) или даже через ArrayAccess.

Он особенно полезен, когда ты не знаешь заранее структуру данных (например, в формах, сериализаторах, шаблонах Twig и т.п.), но тебе нужно получить или установить значение по пути вроде "user.address.city". Если по какой-то причине ты никогда не использовал этот компонент - рекомендую попробовать. `$accessor = PropertyAccess::createPropertyAccessor();

$user = new User(); $user->setName('John'); $user->setAddress(new Address('Paris'));

echo $accessor->getValue($user, 'name'); // "John" echo $accessor->getValue($user, 'address.city'); // "Paris"

$accessor->setValue($user, 'name', 'Jane'); $accessor->setValue($user, 'address.city', 'Berlin');

Лично мне очень помогло сэкономить много строк кода, когда делал формат обмена с внешней системой. Хранить карту полей (name, price и т.д.) и в foreach перебирать намного удобнее, чем: `if ($external['price']) {$entity->setPrice($external['price']);}``