jdecool / TwigConstantAccessorBundle

Simplify access of your class constants in Twig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TwigConstantAccessorBundle

Build Status Scrutinizer Code Quality Latest Stable Version

This bundle simplify access of your class constants in Twig.

Install it

Install extension using composer:

$ composer require jdecool/twig-constant-accessor-bundle

If you don't use Symfony Flex, you have to enabled the bundle in your config/bundles.php configuration:

<?php

return [
    // ...
    JDecool\Bundle\TwigConstantAccessorBundle\JDecoolTwigConstantAccessorBundle::class => ['all' => true],
];

Register the class you want to access constant in your configuration file :

twig_constant_accessor:
    classes:
        - AppBundle\Model\Foo
        - { class: 'AppBundle\Model\Bar' }
        - { class: 'AppBundle\Model\FooBar', alias: 'FooBarAlias' }
        - { class: 'AppBundle\Model\ConstantClass', matches: '/^RULE_/' } # matches accept an regexp compatible with the preg_match function

You can also register a class in your container configuration using the twig.constant_accessor tag :

services:
    my_service:
        class: Namespace\To\ServiceClass
        tags:
            - { name: twig.constant_accessor }

    my_collection:
        class: MyClass
        tags:
            - { name: twig.constant_accessor, alias: 'MyClassAlias' }

    filtered_constants:
        class: ConstantsClass
        tags:
            - { name: twig.constant_accessor, matches: '/^RULE_/' } # matches accept an regexp compatible with the preg_match function

After you can access your class constant in your templates :

{{ ServiceClass.MY_CONSTANT }}
{{ MyClassAlias.KEY }}

{% if 'value' == ServiceClass.My_CONSTANT %}Test is OK{% endif %}

About

Simplify access of your class constants in Twig

License:MIT License


Languages

Language:PHP 92.1%Language:Twig 7.9%