Рейтинг:0

Как я могу внедрить службы в свой класс пакета сущностей?

флаг cn

У меня есть объект с полем JSON, и я выполняю сложную обработку при сохранении объекта.

Прямо сейчас я делаю эту обработку в hook_ENTITY_presave(), который вызывает службу, которую я создал в пользовательском модуле.

Однако, начиная с Drupal 9.3, мы можем создавать классы пакетов для чистого расширения объектов.

Поэтому я сделал один для своей сущности и написал несколько новых геттеров и сеттеров, чтобы я мог делать $entity->getMyValue() вместо $entity->field_abc->значение.

Теперь я хочу сделать следующий шаг и внедрить свой сервис в объект и перенести обработку непосредственно в объект при сохранении. Как я могу это сделать?

Рейтинг:0
флаг cn

Увы, это пока невозможно. Существует обсуждение в очереди основных вопросов о том, как поступить с этим.

Как отмечалось в обсуждении, связанном выше, альтернативой сделать это сейчас является использование Модуль типизированной сущности, который оборачивает сущности в объекты и позволяет выполнять внедрение зависимостей.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.