symfony2:在bundle中定义几个php常量

时间:2014-05-21 17:32:59

标签: symfony

我需要定义几个PHP常量,我需要在我的包中使用这个常量(控制器,自定义类,实体..)哪里有最好的位置来添加这个常量,这对他们来说很方便?

3 个答案:

答案 0 :(得分:10)

为什么不创建一个类来存储常量并使用use语句在需要的地方自动加载?

定义常量......

namespace My\CoolBundle\Constants;

class ConstantlyCool {
    const DEFAULT_COOLNESS_LEVEL = "newbie";
    const MAX_COOLNESS_LEVEL = "phpisuber01";
}

现在使用它们......

namespace My\CoolBundle\Controller;

use My\CoolBundle\Constants\ConstantlyCool;

class CoolController extends Controller {
    public function awesomeAction() {
        // Do cool stuff
        $cool_level = ConstantlyCool::DEFAULT_COOLNESS_LEVEL;

        return new Response(/* blah blah */);
    }
}

答案 1 :(得分:2)

我的最佳解决方案是在Bundle Class中设置这些常量,如下所示:

<?php

namespace AppBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class AppBundle extends Bundle
{
    const SITE_NAME = 'Watchdev AR';
}

并使用twig函数常量http://twig.sensiolabs.org/doc/functions/constant.html调用它们

在任何树枝文件中:

{{ constant('AppBundle\\AppBundle::SITE_NAME') }}

我认为这个解决方案遵循Symfony的最佳实践(在这种情况下没有实体)http://symfony.com/doc/current/best_practices/configuration.html

答案 2 :(得分:0)

班级样本 {const TEST_NUM = 10;}