Symfony4 - 从控制器访问 sevices.yaml
Symfony4 - accessing sevices.yaml from controller
我正在启动一个 symfony4 项目,我了解到 "parameters.yaml" 现在是 "sevice.yaml"。
我在里面设置了一些变量,比如:
parameters:
smugmug.oauth_token: 'XXX'
smugmug.oauth_token_secret: 'XXX'
我尝试从我的控制器访问它,例如:
dump($this->container->get('smugmug.oauth_token'));
但是我有一个错误...
这种存储全局变量的新方法是如何工作的?
我想你忘记扩展控制器了class
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
}
}
现在,由于 Controller 已被弃用,您必须使用 AbstractController,因此您还需要为服务参数注入依赖项:
namespace App\Controller;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class MyStuffController extends AbstractController {
private $params;
public function __construct(ParameterBagInterface $params)
{
$this->params = $params;
}
}
然后你可以这样得到你的参数:
$this->params->get( "app.your_stuff" );
我正在启动一个 symfony4 项目,我了解到 "parameters.yaml" 现在是 "sevice.yaml"。
我在里面设置了一些变量,比如:
parameters:
smugmug.oauth_token: 'XXX'
smugmug.oauth_token_secret: 'XXX'
我尝试从我的控制器访问它,例如:
dump($this->container->get('smugmug.oauth_token'));
但是我有一个错误...
这种存储全局变量的新方法是如何工作的?
我想你忘记扩展控制器了class
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
}
}
现在,由于 Controller 已被弃用,您必须使用 AbstractController,因此您还需要为服务参数注入依赖项:
namespace App\Controller;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class MyStuffController extends AbstractController {
private $params;
public function __construct(ParameterBagInterface $params)
{
$this->params = $params;
}
}
然后你可以这样得到你的参数:
$this->params->get( "app.your_stuff" );