https://github.com/jdecool/twigconstantaccessorbundle
Simplify access of your class constants in Twig
https://github.com/jdecool/twigconstantaccessorbundle
constant hacktoberfest symfony-bundle twig
Last synced: about 2 months ago
JSON representation
Simplify access of your class constants in Twig
- Host: GitHub
- URL: https://github.com/jdecool/twigconstantaccessorbundle
- Owner: jdecool
- License: mit
- Created: 2016-02-16T18:46:29.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-23T13:44:21.000Z (7 months ago)
- Last Synced: 2025-05-13T17:09:32.599Z (about 2 months ago)
- Topics: constant, hacktoberfest, symfony-bundle, twig
- Language: PHP
- Homepage:
- Size: 142 KB
- Stars: 9
- Watchers: 3
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TwigConstantAccessorBundle
[](https://actions-badge.atrox.dev/jdecool/TwigConstantAccessorBundle/goto?ref=main)
[](https://packagist.org/packages/jdecool/twig-constant-accessor-bundle)This bundle simplify access of your enum values or class constants in Twig.
## Install it
Install extension using [composer](https://getcomposer.org):
```bash
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
['all' => true],
];
```Register the class you want to access constant in your configuration file :
```yaml
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 :
```yaml
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
```Or you can use the `#[AsTwigConstantAccessor]` attribute on your class :
```php
use JDecool\Bundle\TwigConstantAccessorBundle\Annotation\AsTwigConstantAccessor;#[AsTwigConstantAccessor]
class MyClass
{
// ...
}
```After you can access your class constant in your templates :
```twig
{{ ServiceClass.MY_CONSTANT }}
{{ MyClassAlias.KEY }}{% if 'value' == ServiceClass.My_CONSTANT %}Test is OK{% endif %}
```