Скажем, я делаю запрос для группы разных смешанных объектов. Представьте, что все эти сущности находятся в одной таблице наследования, а существует дюжина различных типов.
Я хочу создать ссылку на страницу редактирования сонаты для любого из этих объектов.
Я могу получить полное имя класса для объекта Entity с помощью функции get_class. Я не могу придумать способ передать этот класс Sonata и вернуть объект службы или идентификатор службы администратора, представляющего этот класс.
Если мне это удастся, я могу использовать метод generateUrl класса Admin, чтобы создать ссылку на форму редактирования.




Все административные службы хранятся в пуле.
Github: https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Admin/Pool.php
Этот пул доступен через службу sonata.admin.pool.
Ваш магический метод находится внутри этой службы:
$admin = $this->get('sonata.admin.pool')->getAdminByClass('YOUR CLASS NAME');