cg/kint-bundle

This bundle lets you use the Kint function in your Twig templates. Kint is a print_r() replacement which produces a structured, collapsible and escaped output

Installs: 125 647

Dependents: 1

Suggesters: 0

Security: 0

Stars: 22

Watchers: 6

Forks: 11

Type:symfony-bundle

v0.2 2021-07-12 07:34 UTC

This package is not auto-updated.

Last update: 2024-11-11 23:23:26 UTC


README

This bundle lets you use the Kint library in your Twig templates.

This bundle adds a new Twig kint() function which is a replacement for the Twig dump() function. Extremely easy to use but very powerful. Some of its features:

  • Much more elegant and readable output - structured, collapsible and escaped.
  • The name of the twig variable is displayed.
  • Accepts any number of parameters in one call and groups them for you to see what was dumped in different iterations.
  • Handles recursive variables.
  • Much more information is displayed about the variable in many cases:
    • static properties of the dumped objects class;
    • specific types of data are recognized and displayed in a custom way (eg. JSON, XML strings);
    • if a resource variable is of an opened file, the file name is displayed and much more...
  • Complex variables are dumped with a fixed nested depth so that it doesn't hang up your browser for enormous objects.

Installation

Using Composer (for Symfony 2.1)

Add the Kint Bundle in your composer.json file:

{
    "require": {
        "cg/kint-bundle": "dev-master"
    }
}

Now tell composer to download the bundle by running the command:

$ php composer.phar update Cg/KintBundle

Composer will install the bundle and Kint in your project's vendor directory.

Using Deps (for Symfony 2.0)

1- Add this to your Deps file:

[Kint]
    git=http://github.com/raveren/kint.git
    target=raveren/kint

[KintBundle]
    git=http://github.com/barelon/CgKintBundle.git
    target=bundles/Cg/KintBundle

2- run ./bin/vendors install

3- Add the Cg namespace to your autoloader:

// app/autoload.php

$loader->registerNamespaces(array(
    // ...
    'Cg' => __DIR__.'/../vendor/bundles',
));

4- Add a classmap to your autoloader so that it can load the Kint class. Add this line at the beginning of the app/autoload.php file

use Symfony\Component\ClassLoader\MapClassLoader;

And add this code snippet at the end of that file:

// Create map autoloader
$mapLoader = new MapClassLoader(array(
    'Kint' => __DIR__.'/../vendor/raveren/kint/Kint.class.php',
));

$mapLoader->register();

Update your AppKernel (for both Symfony 2.1 and 2.0)

Finally, enable the bundle in the kernel:

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Cg\KintBundle\CgKintBundle(),
    );
}

Usage

Within any Twig template use

{{kint(var1,var2,...)}}

This will dump on screen the values of these Twig variables. They will be shown in a beautiful format, with a collapsable hierarchical view. Click on any variable name to open or collapse one level or click the + and - signs to open or collapse all levels.

If you don´t include any variable names in your kint() call, like this:

{{kint()}}

then the whole Twig Context with all its variables will be dumped.

Configuration

In your app/config/config.yml file you can include

cg_kint:
    enabled:          true
    nesting_depth:    5
    string_length:    60
  • The enabled parameter defines if kint output is enabled or not. Set this to false and Kint will not output anything, you probably want to set this to false for the prod environment.
  • The nesting_depth parameter defines the maximum depth of nesting in object/array variables that Kint will show. Use 0 for infinite depth. Kint will recognize recursion in variables and will not hang your browser.
  • The string_length parameter defines the maximum lenth of strings shown. If a string is longer than that it will be shown truncated with a link to see it fully.

All these parameters are optional. If you don´t include them they will take the default values shown above.

License

This bundle is under the MIT license. See the complete license in the bundle:

Resources/meta/LICENSE

About

KintBundle has been created by Carlos Granados.

Kint was created by Rokas Šleinius.

See also the list of contributors.

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker.