Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为symfony 2中的所有控制器设置全局变量?_Symfony - Fatal编程技术网

如何为symfony 2中的所有控制器设置全局变量?

如何为symfony 2中的所有控制器设置全局变量?,symfony,Symfony,我需要一个全局变量,以便所有控制器都能访问它。另外,我还要介绍如何在我的所有控制器中使用symfony 2会话变量。基本上,您需要的是一个DI容器参数。在Symfony 2中,控制器总是处理容器,因此您可以轻松地将此类变量提取到容器参数中 为此,应首先在参数中定义参数。yml: parameters: your_bundle.global_param: 'Hello world' 然后,根据您的具体需要,您可以以不同的方式访问它。在从Symfony的基本控制器类继承的控制器中,可以如下

我需要一个全局变量,以便所有控制器都能访问它。另外,我还要介绍如何在我的所有控制器中使用symfony 2会话变量。

基本上,您需要的是一个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
    }
}

基本上,您需要的是一个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中执行相同操作的人。

容器参数与变量不同,它们更像是应用程序范围的常量,因为您无法在运行时更改它们的值。容器参数与变量不同,它们更像是应用程序范围的常量,因为您无法在运行时更改它们的值。