How to access class constants in Twig?

后端 未结 7 1061
醉梦人生
醉梦人生 2020-12-12 15:49

I have a few class constants in my entity class, e.g.:

class Entity {
    const TYPE_PERSON = 0;
    const TYPE_COMPANY = 1;
}

In normal PH

7条回答
  •  臣服心动
    2020-12-12 16:25

    Edit: I've found better solution, read about it here.


    • Read more about how to create and register extension in Twig documentation.
    • Read about Twig extensions in Symfony2 documentation.

    Let's say you have class:

    namespace MyNamespace;
    class MyClass
    {
        const MY_CONSTANT = 'my_constant';
        const MY_CONSTANT2 = 'const2';
    }
    

    Create and register Twig extension:

    class MyClassExtension extends \Twig_Extension
    {
        public function getName()
        { 
            return 'my_class_extension'; 
        }
    
        public function getGlobals()
        {
            $class = new \ReflectionClass('MyNamespace\MyClass');
            $constants = $class->getConstants();
    
            return array(
                'MyClass' => $constants
            );
        }
    }
    

    Now you can use constants in Twig like:

    {{ MyClass.MY_CONSTANT }}
    

提交回复
热议问题