ajgl / breakpoint-twig-extension
Twig extension to set breakpoints
Installs: 6 577 659
Dependents: 1
Suggesters: 0
Security: 0
Stars: 45
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- php: >=7.4
- twig/twig: ^2.15.3 || ^3.0 || ^4.0
Requires (Dev)
- composer/xdebug-handler: ^2.0 || ^3.0
- friendsofphp/php-cs-fixer: ^3.13
- phpunit/phpunit: ^9.5.6
- symfony/framework-bundle: ^4.4 || ^5.4 || ^6.3 || ^7.0
- symfony/phpunit-bridge: >=7.0
- symfony/twig-bundle: ^4.4 || ^5.4 || ^6.3 || ^7.0
Suggests
- ext-xdebug: The Xdebug extension is required for the breakpoint to work
- composer/xdebug-handler: To improve de Xdebug detection
- symfony/framework-bundle: The framework bundle to integrate the extension into Symfony
- symfony/twig-bundle: The twig bundle to integrate the extension into Symfony
Conflicts
- composer/xdebug-handler: <2.0
- symfony/framework-bundle: <4.4
- symfony/twig-bundle: <4.4
README
The AjglBreakpointTwigExtension component allows you set breakpoints in twig templates.
This component requires the Xdebug PHP extension to be installed.
Installation
To install the latest stable version of this component, open a console and execute the following command:
composer require ajgl/breakpoint-twig-extension --dev
Usage
The first step is to register the extension into the twig environment
/* @var $twig Twig_Environment */ $twig->addExtension(new Ajgl\Twig\Extension\BreakpointExtension());
Once registered, you can call the new breakpoint
function:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>title</title> </head> <body> {{ breakpoint() }} </body> </html>
Once stopped, your debugger will allow you to inspect the $environment
and $context
variables.
Function arguments
Any argument passed to the twig function will be added to the $arguments
array, so you can inspect it easily.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>title</title> </head> <body> {{ breakpoint(app.user, app.session) }} </body> </html>
Symfony Bundle
The package includes a Symfony Bundle to automatically register the Twig extension.
If the app uses Symfony Flex and you allow the recipe execution, the bundle will be enabled automatically.
If you need to configure it manually, add the following line to the config/bundles.php
file:
// config/bundles.php //... return [ //... Ajgl\Twig\Extension\SymfonyBundle\AjglBreakpointTwigExtensionBundle::class => ['dev' => true] ];
License
This component is under the MIT license. See the complete license in the LICENSE file.
Reporting an issue or a feature request
Issues and feature requests are tracked in the Github issue tracker.
Author Information
Developed with ♥ by Antonio J. García Lagar.
If you find this component useful, please add a ★ in the GitHub repository page.