constant-exposure / constant-exposure-bundle
Expose php constants to front.
Installs: 2 000
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.2
- symfony/cache: ^3.4|^4.0|^5.0|^6.0
- symfony/config: ^3.4|^4.0|^5.0|^6.0
- symfony/dependency-injection: ^3.4|^4.0|^5.0|^6.0
- symfony/framework-bundle: ^3.4|^4.0|^5.0|^6.0
- symfony/http-foundation: ^3.4|^4.0|^5.0|^6.0
- symfony/http-kernel: ^3.4|^4.0|^5.0|^6.0
- symfony/serializer: ^3.4|^4.0|^5.0|^6.0
- symfony/twig-bundle: ^3.4|^4.0|^5.0|^6.0
Requires (Dev)
- phake/phake: @stable
- phpstan/phpstan-symfony: ^0.12
- symfony/phpunit-bridge: ^4.4
This package is not auto-updated.
Last update: 2025-04-16 18:39:57 UTC
README
This Symfony Bundle is useful if you need to expose constants to front.
Install
Composer
composer require constant-exposure/constant-exposure-bundle:^2.2
Load the bundle
In config/bundles.php
, add this line:
return [ ... ConstantExposureBundle\ConstantExposureBundle::class => ['all' => true], ];
Usage
Define constants to expose
Create a file config/packages/constant_exposure.yaml
in your project. Then, configure constants to expose.
constant_exposure: parameter: debug: '%kernel.debug%' sentry_dsn: '%env(SENTRY_DSN)%' password_expire: !php/const App\Entity\Password::EXPIRE_PASSWORD
Use constants in JavaScript
Add this line in your Twig template. Pass as parameter a name for your JavaScript object.
{{ constant_exposure_object('ConstantExposure') }}
Get them in Javascript:
ConstantExposure.getParameter(PARAMETER_NAME [, DEFAUlT_VALUE = null] );
// Check if you are in debug mode const isDebug = ConstantExposure.getParameter('debug'); // If sentry_dsn is not defined, default value is an empty string const sentryDsn = ConstantExopsure.getParameter('sentry_dsn', '');
Route exposure
If you need to expose your constants on a route, add these lines in your routing file:
constant_exposure: resource: "@ConstantExposureBundle/Resources/config/routing.yaml"
Then, you can access it with this url:
- /constant-exposure.json for a JSON format
- /constant-exposure.xml for a XML format
- /constant-exposure.csv for a CSV format