如何为symfony 2中的所有控制器设置全局变量?
我需要一个全局变量,以便所有控制器都能访问它。另外,我还要介绍如何在我的所有控制器中使用symfony 2会话变量。基本上,您需要的是一个DI容器参数。在Symfony 2中,控制器总是处理容器,因此您可以轻松地将此类变量提取到容器参数中 为此,应首先在如何为symfony 2中的所有控制器设置全局变量?,symfony,Symfony,我需要一个全局变量,以便所有控制器都能访问它。另外,我还要介绍如何在我的所有控制器中使用symfony 2会话变量。基本上,您需要的是一个DI容器参数。在Symfony 2中,控制器总是处理容器,因此您可以轻松地将此类变量提取到容器参数中 为此,应首先在参数中定义参数。yml: parameters: your_bundle.global_param: 'Hello world' 然后,根据您的具体需要,您可以以不同的方式访问它。在从Symfony的基本控制器类继承的控制器中,可以如下
参数中定义参数。yml
:
parameters:
your_bundle.global_param: 'Hello world'
然后,根据您的具体需要,您可以以不同的方式访问它。在从Symfony的基本控制器类继承的控制器中,可以如下方式获取参数:
<?php
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class MyController extends Controller
{
public function someAction()
{
$var = $this->container->getParameter('your_bundle.global_param');
// $var equals to 'Hello world' now
}
}
基本上,您需要的是一个DI容器参数。在Symfony 2中,控制器总是处理容器,因此您可以轻松地将此类变量提取到容器参数中
为此,应首先在参数中定义参数。yml
:
parameters:
your_bundle.global_param: 'Hello world'
然后,根据您的具体需要,您可以以不同的方式访问它。在从Symfony的基本控制器类继承的控制器中,可以如下方式获取参数:
<?php
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class MyController extends Controller
{
public function someAction()
{
$var = $this->container->getParameter('your_bundle.global_param');
// $var equals to 'Hello world' now
}
}
为了防止任何人需要在Symfony3框架中执行相同的操作,它使用ContainerInterface而不是container:
您只需调用getParameter()
(参见上面的@kix示例),如下所示:
希望这有助于希望在Symfony3中执行相同操作的人。为了防止任何人需要在Symfony3框架中执行相同操作,它使用ContainerInterface而不是container:
您只需调用getParameter()
(参见上面的@kix示例),如下所示:
希望这能帮助想要在Symfony3中执行相同操作的人。容器参数与变量不同,它们更像是应用程序范围的常量,因为您无法在运行时更改它们的值。容器参数与变量不同,它们更像是应用程序范围的常量,因为您无法在运行时更改它们的值。