我有多語言網站,使用xml爲不同的語言。 (我知道Symfony Translations存在,但是我正在實現我自己的系統來訪問和獲取xml元素值,我想測試它)。Symfony2之前和之後的過濾器不適用於containeraware
我不打算在這裏把整個代碼的可讀性,實現是一樣in this link.
我下一個名字xml_handler
有服務。我通過$this->get('xml_handler')
在控制器中獲取的服務。但之後,我開始使用Symfony2最佳實踐並開始擴展ContainerAware。之後,下面的代碼被定義爲Before Listener,失敗。
if($controller[0] instanceof LanguageInterface) {
$xmlHandler = $controller[0]->get('xml_handler');
它提出了一個錯誤,沒有get()
方法$controller
(索引控制器是一個擴展ContainerAware控制器的名字,但是這並不重要,只是爲了清楚起見)
的問題又出現了之後我停止擴展Controller,但開始擴展ContainerAware,正如我前面所說。
所以,我怎麼得到get()
方法,它是保護的,所以很明顯,想:
$controller[0]->container->get('xml_handler')
不工作。我已經看過API但沒有getContainer()
方法。
我想,這個任務是,我如何訪問控制器外的ContainerAware,在我的情況下,在Before過濾器?
感謝您的答案。