Symfony4 - доступ к sevices.yaml из контроллера - PullRequest
0 голосов
/ 04 мая 2018

Я запускаю проект symfony4 и узнал, что "parameters.yaml" теперь является "sevice.yaml".

Я установил некоторые переменные внутри, например:

parameters:
    smugmug.oauth_token: 'XXX'
    smugmug.oauth_token_secret: 'XXX'

И я пытаюсь получить к нему доступ из моего контроллера, как:

    dump($this->container->get('smugmug.oauth_token'));

Но у меня ошибка ...

Как работает этот новый способ хранения глобальных переменных?

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Теперь, поскольку Controller устарел, и вам нужно использовать AbstractController, вам также необходимо ввести зависимость для параметра службы:

namespace App\Controller;

use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;

class SetController extends  AbstractController  {

    private $params;

    public function __construct(ParameterBagInterface $params)
    {
        $this->params = $params;
    }
}

Тогда вы можете получить свои параметры так:

$this->params->get( "app.your_stuff" );
0 голосов
/ 04 мая 2018

Я думаю, что вы забыли расширить класс контроллера

namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class ArticleController extends Controller
{
    public function controlAction()
    {
        // ...
        dump($this->container->getParameter('smugmug.oauth_token'));
        // Or this solution
        dump($this->getParameter('smugmug.oauth_token'));
        // ...
        // return a response
    }
}
...