2013-01-15 5 views
4

여러 개의 나뭇 가지 확장을 만들 수 있습니까? 두 번째 추가 할 때 첫 번째 확장 메서드가 두 번째 확장명에 존재하지 않는 오류 메시지가 나타납니다.Symfony2 다중 나뭇 가지 확장

<service id="acme.extension.view_helper" class="FLS\AcmeBundle\Extension\ViewHelperExtension"> 
     <argument type="service" id="doctrine.orm.entity_manager" /> 
     <tag name="twig.extension" /> 
</service> 

<service id="acme.extension.stats_helper" class="FLS\AcmeBundle\Extension\StatsExtension"> 
     <argument type="service" id="doctrine.orm.entity_manager" /> 
     <tag name="twig.extension" /> 
</service> 

그리고 여기에 오류 메시지입니다 : 여기

내 확장이 services.xml 파일에 정의하는 방법이다

Fatal error: Call to undefined method FLS\AcmeBundle\Extension\StatsExtension::findTask() in F:\www\AcmeBundle\app\cache\dev\twig\fe\fd\4ff31bf8efd0669b6d0b2a14ba11.php on line 232

가 findTask 방법은 ViewHelperExtension에 정의되어 있습니다.

미리 감사드립니다.

+0

ViewHelperExtension 및 StatsExtension 코드를 공유 할 수 있습니까? – Luke

+0

동일한 문제가 발생했습니다. 서비스 정의는 Ok입니다. 이상한 행동의 경우 인 것처럼 보입니다. 두 개의 서비스 확장을 정의하는 동안 마지막으로 정의 된 서비스 확장 만 사용할 수 있습니다. 이 문제는 Twig와 관련이 있습니다. –

+0

동일한 문제가 있지만 서비스 번들이 동일한 번들에만있는 경우 – Fabien

답변

0

내 프로젝트에서 몇 개의 나뭇 가지 확장을 사용하며 모든 것이 정상입니다. services.xml에 서비스 태그가 포함되어 있습니까? <services> // Services definition </services> 먼저 두 번째 서비스 재정의처럼 보입니다.

How to write a custom Twig Extension

+0

이상하게도 services.xml 파일에서 수행해야하는 모든 작업은 서비스 정의 순서를 이동하는 것입니다. 예를 들어, 내 확장 기능의 두 정의 사이에 FormHandler에 대한 다른 서비스 정의와 재정의 문제가 사라졌습니다. – Frank6

0

편집 : TL; DR. 예. 가능합니다.

지금 당장이 문제가있었습니다. 필자의 경우이 이유는 두 확장 모두 동일한 상용구로 시작했기 때문에 각 내부의 getName() 함수가 동일한 이름을 반환하고 있기 때문입니다.

각 확장에서 함수가 반환하는 이름을 변경하면 두 확장이 모두 추가됩니다. 나는 다음과 같이 일하는 것이 가정

에서 SRC/AppBundle/나뭇 가지/AppBundleFooExtension.php

/* ... */ 
public function getName() 
{ 
    return 'appbundle_foo_extension'; 
} 
/* ... */ 

SRC에서/AppBundle/나뭇 가지/AppBundleBarExtension.php

/* ... */ 
public function getName() 
{ 
    return 'appbundle_bar_extension'; 
} 
/* ... */ 
관련 문제