Symfony2를 기반으로하는 사용자 정의 CMS를 작성 중이며 현재 사용자 시스템에서 작업 중입니다. 우리 번들은 사이트가 사용자 데이터를 위해 필요로 할 수있는 모든 가장 일반적인 속성을 포함하고 BaseSiteUser
을 확장하고 엔터티에 대한 테이블을 정의하는 을 정의했습니다.Symfony2의 다른 번들에서 엔티티 덮어 쓰기
아이디어는 각각의 개별 프로젝트에 대해 SiteUser
엔티티를 새 프로젝트의 네임 스페이스에서보다 구체적인 것을 작성하여 덮어 쓰거나 새 프로젝트의 네임 스페이스를 지정하지 않으면 기본값을 사용한다는 아이디어가있었습니다.
우리의 번들 아키텍처는 다음과 같이 다소 같습니다
OurCompany
CMSBundle
Entities
BaseSiteUser.php
SiteUser.php
CustomerName
CustomerProjectBundle
CMSBundle
Entities
SiteUser.php
우리의 문제가 CustomerName\CMSBundle
에 정의 된 SiteUser
대신 OurCompany\CMSBundle
에서 하나의 사용되도록 우리가 모델을 구축 할 수 있다는 것입니다. 대신, 우리는이 오류를 얻을 : 우리는 documentation 컨설팅 시도
[Doctrine\DBAL\Schema\SchemaException]
The table with name 'siteuser' already exists.
을하지만, 그 부분은 아직 적용되지 않았습니다. 웹 검색은 해결책도 제공하지 못했습니다.
우리는 모델을 정의하기 위해 주석 방법을 사용하고 있습니다.
감사 답변을, 즉 우리의 번들은 현재 설정 방법입니다. 상속 자체는 훌륭하게 작동하지만 엔티티를 재정의하는 것은 우리가 고심하고있는 것입니다. – Kaivosukeltaja
'OurCompany \ CMSBundle \ SiteUser' 엔티티를 추상 클래스로 설정할 수 있습니다. –
그러나 기본 엔터티를 가져 오려면 각 번들에 빈'SiteUser' 엔터티를 만들어야합니다. –