Simplify access of your class constants in Twig
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Accessor
DataCollector
DependencyInjection
Resources
Tests
Twig
.editorconfig
.gitignore
.php_cs.dist
.scrutinizer.yml
.travis.yml
JDecoolTwigConstantAccessorBundle.php
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

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:

{
    "require": {
        "jdecool/twig-constant-accessor-bundle": "~1.0"
    }
}

Enable the extension in your application AppKernel:

<?php

public function registerBundles()
{
    $bundles = [
        // ...
        new JDecool\Bundle\TwigConstantAccessorBundle\JDecoolTwigConstantAccessorBundle(),
    ];

    // ...

    return $bundles;
}

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 %}