Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 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 (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T22:08:24.000Z (6 months ago)
- Last Synced: 2024-11-06T01:18:12.503Z (3 months ago)
- Topics: constant, hacktoberfest, symfony-bundle, twig
- Language: PHP
- Homepage:
- Size: 152 KB
- Stars: 9
- Watchers: 4
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TwigConstantAccessorBundle
[![Build Status](https://github.com/jdecool/TwigConstantAccessorBundle/actions/workflows/ci.yml/badge.svg)](https://actions-badge.atrox.dev/jdecool/TwigConstantAccessorBundle/goto?ref=main)
[![Latest Stable Version](https://poser.pugx.org/jdecool/twig-constant-accessor-bundle/v/stable.png)](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 %}
```