2013-08-04 14 views
1

config.yml에 여러 번들과 전역 데이터베이스 연결이 정의 된 SaaS Symfony2 프로젝트가 있습니다. 이제 특정 클라이언트가 사용자 정의 기능을 원합니다. 주요 프로젝트와 통합되기를 원하기 때문에 나는 그 클라이언트에 특정한 코드로 새로운 번들을 생성하기로 결정했다. 이 번들에는 몇 가지 새로운 데이터베이스 테이블이 필요할 수도 있지만, 해당 클라이언트에 고유하기 때문에 새 데이터베이스를 만들게됩니다.symfony 2 번들 당 doctrine 연결을 정의하십시오.

그러면 새로운 Doctrine 연결을 정의해야합니다. 모든 번경 설정을 기본 config.yml에 두지 않고 (특정 번들로 10 개의 클라이언트가있는 경우 상당히 혼란 스러울 수 있음) 클라이언트 번들 내부의 일부 구성 파일에서이를 정의 할 수있는 방법이 있습니까? 그런 식으로 번들 내에 모든 클라이언트 코드와 구성을 쉽게 캡슐화 할 수 있습니다.

종속성 주입 구성 요소 및 컴파일러 패스를 사용하여 다음과 같이 정의 된 일부 매개 변수 파일을 기반으로 새 데이터베이스 연결을 만들 수 있다고 생각합니다. 번들을 사용하는 방법을 모르겠다. 또한 작업을 더욱 어렵게 만드는 연결 (Doctrine Extensions)과 관련된 일부 청취자를 정의해야합니다.

각 요청마다 하나의 "클라이언트 번들"이 활성화 될 것입니다. 그래서 나는 아마도 "클라이언트"연결을 정의한 다음 런타임에 연결 문자열을 변경할 수 있습니까? (이 경우에는 하위 도메인이나 다른 것을 기반으로 올바른 클라이언트 번들 만로드해야합니다.)

도움 주셔서 감사합니다.

+0

마지막으로이 문제를 해결 했습니까? 어떻게 했습니까? – Nis

답변

-1

\ src \ Acme \ DemoBundle \ DependencyInjection \ AcmeDemoExtension.php와 \ src \ Acme \ DemoBundle \ Resources \ config 폴더를 살펴보십시오. yml 또는 xml 파일을로드하고 데이터베이스 연결을 설정할 수 있습니다. 당신이 필요로하는 매핑.

0
당신은/공급 업체에 DoctrineExtension.php에서 시작할 수

/교리 번들/교리/번들/DoctrineBundle/의존성 주입/

포함 된 두 가지 방법의 loadDbalConnection()와 구성 값을로드하고 연결을 구축 loadOrmEntityManager() 및 Mappings 개체. 필요한 코드를 해당 클래스에서 복사 할 수 있습니다.