如何在Symfony框架中定义全局CONST变量?

时间:2017-11-18 18:22:19

标签: php symfony

如何在我的app symfony中定义全局CONST变量?在symfony中定义全局变量的良好实践是什么? Mayby我应该创建界面并使用DI吗?

2 个答案:

答案 0 :(得分:1)

您应该将变量添加到app/config/config.yml;

# app/config/config.yml
parameters:
    myVariable: 10

你可以使用它;

$this->getParameter('myVariable');

答案 1 :(得分:0)

如果它是一个常量,它就不会改变,换句话说:它不是一个参数。因此,将其放在Symfony 配置文件中是没有意义的,也不是最佳选择。

在我看来,最佳实践是在您使用的类中定义它:

namespace App\Entity;

class Foo {
    const MyConst = 'A value';

    /* ...... */

如果你在不同的地方需要它,你可以创建一个类来定义你的应用程序常量:

namespace App\Classes;

class Constants {
    const MyConst = 'Hello world!';

     /* ...... */

}

然后,你可以在任何需要的地方使用这个类:

namespace App\Controller\Frontend;

use App\Classes\Constants;

class FooController extends AbstractController
{
     /* ...... */

     public function bar()
     {
            echo Constants::MyConst;
      }

}

这一切都是基于它的值不依赖于环境的事实,如果不是这样,你应该使用.env文件。

相关问题