Могу ли я получить EntityManager из методов класса сущности? - PullRequest
1 голос
/ 28 ноября 2011

Есть ли простой способ получить менеджера сущностей Doctrine из метода класса сущности?

<?php

/** @Entity */
class MyEntity {
    /** @Id @GeneratedValue @Column(type="integer") */
    protected $id;

   [...]

   public function someFunction() {
     // Is there any way to get Doctrine's EntityManager in here?
   }
}

1 Ответ

4 голосов
/ 28 ноября 2011

Ты действительно не должен.Идея, лежащая в основе ORM, например Doctrine, заключается в том, что ваши сущности - это просто старые объекты, которые ничего не знают о слое постоянства.Если вы обнаружите, что хотите, чтобы EntityManager находился внутри вашей сущности, это сигнал о том, что вам следует создать какой-то класс обслуживания.

При этом Doctrine достаточно гибок.Например, если бы вы были так склонны, вы могли бы использовать Doctrine в качестве основы для ORM в стиле ActiveRecord.

Однако, за исключением очень специфических сценариев использования, я бы не рекомендовал это.

...