我在我的Symfony項目中使用了我的供應商文件夾中的一些自定義類。現在,我需要從我的parameters.yml它位於從供應商文件夾Symfony訪問parameters.yml
C:\xampp\htdocs\myproject\app\config\parameters.yml
在我的正常Symfony的代碼訪問某些參數我只是做
$this->getParameter('myparameter');
和所有的設置,而不是在供應商的文件夾中。我想我需要導入一些命名空間,但無法找到哪些? 任何幫助,將不勝感激。謝謝。
UPD1這個問題是通過添加以下代碼AppBundle.php
class AppBundle extends Bundle
{
private static $containerInstance = null;
public function setContainer(\Symfony\Component\DependencyInjection\ContainerInterface $container = null)
{
parent::setContainer($container);
self::$containerInstance = $container;
}
public static function getContainer()
{
return self::$containerInstance;
}
}
,然後調用從我的供應商代碼的容器解決了以下內容:
use AppBundle\AppBundle;
AppBundle::getContainer()->getParameter('myparameter');
感謝大家幫幫我。
[注入服務容器](http://stackoverflow.com/questions/) 12056178/how-to-access-service-container-in-symfony2-global-helper-function-service)並使用[' - > getParamter()'](http://symfony.com/doc/current/service_container/ parameters.html)? – kero
我是否需要將其定義爲服務,或者使用Symfony \ Component \ DependencyInjection \ ContainerInterface作爲Container;足夠?順便說一句,這種方法不工作說未定義的屬性$容器 – Jack
@傑克您的更新代碼正是**不**做。靜態從容器中獲取參數正在破壞容器的整個目的。供應商文件夾中的類現在將與AppBundle類和容器緊密耦合。請不要這樣做。實例化時,通過構造函數將所需參數注入類中。這就是依賴注入容器的用途。我的答案在下面解釋。 – daviomey