Symfony4-从控制器访问sevices.yaml

Ant*_*lec 1 php service symfony4

我正在启动一个symfony4项目,并且我知道“ parameters.yaml”现在是“ sevice.yaml”。

我在里面设置了一些变量,例如:

parameters:
    smugmug.oauth_token: 'XXX'
    smugmug.oauth_token_secret: 'XXX'
Run Code Online (Sandbox Code Playgroud)

我尝试从我的控制器访问它,例如:

    dump($this->container->get('smugmug.oauth_token'));
Run Code Online (Sandbox Code Playgroud)

但是我有一个错误...

这种存储全局变量的新方法如何工作?

Tec*_*mad 6

现在,由于不赞成使用Controller,并且必须使用AbstractController,因此还需要为service参数注入依赖项:

namespace App\Controller;

use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;

class SetController extends  AbstractController  {

    private $params;

    public function __construct(ParameterBagInterface $params)
    {
        $this->params = $params;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样获取参数:

$this->params->get( "app.your_stuff" );
Run Code Online (Sandbox Code Playgroud)