2017-03-16 3 views
1

좋아, 그래서 나는 Drupal 8 사이트에서 사용할 사용자 정의 독립형 라이브러리를 만드는 중입니다. Drupal 8은 Symfony 2.8.x에서 실행됩니다. Drupal 밖에서이 코드를 사용할 수 있기를 바랍니다. 그래서 저는 Drupal 지향적 인 것보다 Symfony 지향적 인 것을 강조했습니다.사용자 정의 Symfony 호환 라이브러리의 구성 파일

필자가 지금까지 발견 한 모든 것들은 Symfony가 DependencyInjection/Configuration.php에서 많은 설정 선언을 작성하도록 요구합니다. MyBundleExtension.php 파일의 서비스 선언뿐입니다.

내가 찾지 못한 것은 "이봐,이 독립형 (모든 컨트롤러가 아님) 클래스에서이 구성 매개 변수를 원한다"라는 간단한 방법입니다. 그래서 나는 아래에있는 수업을 썼다.

더 나은 방법이 있나요?

코드 : http://pastebin.com/pdp53kxe 또한

, 이것은로드 서비스에 문제를 만들 것인가?

어떤 시점에서 나는 의존성 주입을 다루어야하고 우리가 주입하고 싶은 것을 실제로 새로 처리해야합니다. Symfony 프레임 워크를 활용하면서이 독립 실행 형 라이브러리에 어떻게 작동할지 아직 확실하지 않습니다. 심포니 와이어를 사용하는 방법에 대한 제안은 훌륭합니다.

여기서 나의 기본적인 질문은 라이브러리 설정에서 Symfony를 사용하는 것입니다. 어디 컨트롤러 컨텍스트 내에서 변수가 필요하지 않을 것이라고.

답변

1

구성을 가져 오려면 구성 (아마도 심지어 구문 분석)을로드하려면 DependecyInjection/MyBundleExtension.php 클래스를 사용해야합니다.

또 다른 방법은 컴파일러 패스를 사용하여 컨테이너를 직접 조작하는 것입니다. 그러나이 경우에는 케이스에 과도기가 될 수 있습니다.

주된 이유는 종속성 주입 컨테이너 (모든 서비스 정의 및 구성 매개 변수를 포함 함)가 컴파일된다는 것입니다.

그래서 편집하기 전에 추가 구성을 주입해야합니다.

유용한 링크 :

http://symfony.com/doc/current/service_container/import.html

http://symfony.com/doc/current/service_container/compiler_passes.html

관련 문제