2014-01-10 4 views
1

나는 내 프로젝트 A와 B 두 묶음을 정의해야한다. 프로젝트 A에서 엔티티 A.E가 있고 프로젝트 B에는 엔티티 B.E.가있다.Symfony2 재사용 가능한 엔터티

A.E와 B.E 사이에 양방향 관계가 필요합니다. 그러나 나는 또한 번들 B를 엔티티 C.E를 갖는 다른 번들 C로 대체 할 수 있어야합니다. 그런 다음 A.E-B.E 쌍방향 관계를 A.E-C.E 동일한 관계로 바꿉니다.

내가 재사용 할 교리 2 양방향 관계 배를 정의 할 수없는 것 같다

// pseudo PHP, just to illustrate. 

/** 
* @manyToOne(targetEntity=B.E) 
* @entity 
*/ 
class A.E() {} 

/** 
* @oneToMany(targetEntity=B.E) 
* @entity 
*/ 
class B.E() {} 

내가 파이썬 장고 ORM 사용 해요 AE를 변경하지 않고 CE에 의해 BE 대체 할 수있는 I 각각의 두 엔티티 사이의 관계를 선언 할 필요가 없으므로 재사용 가능한 엔티티 모델을 작성할 수 있습니다.

symfony2로 재사용 가능한 모델을 만드는 방법을 찾을 수 없습니다. 나는 잘못 이해했거나 잘못된 길로 가고있을 수도 있습니다. 그게 도움이 되니?

감사

답변

3

당신은 재사용 가능한 개체를 만들 수는 인터페이스에 관련된다. 기본적으로 :

class MyReusableEntity 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="MyVendor\MyBundle\MyInterface") 
    * @var MyInterface 
    */ 
    protected $myInterfaceRelation; 
} 

그리고 각 프로젝트에

당신은 그것을 사용 :

doctrine: 
    orm: 
     resolve_target_entities: 
      MyVendor\MyBundle\MyInterface: My\Concrete\Class 

문서 : http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html

+0

감사합니다. 따라서 추상적 인 수퍼 클래스를 재사용 할 수있는 동일한 일을 할 수 있다고 생각합니다. – Egg