Symfony2 bundle for Ladybug library, the Simple and Extensible PHP Dumper
Switch branches/tags
Nothing to show
Pull request Compare This branch is 61 commits behind raulfraile:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Build Status

This bundle provides an easy and extensible var_dump/print_r replacement for Symfony2 projects, both in controllers or Twig templates. For example, with this bundle, the following is possible:

    class UserController extends Controller
        public function userAction($username) {
            ladybug_dump($username); // or just ld($username)
{{ user.username|ladybug_dump }}

Getting as a result:

string(10) "raulfraile"


Step 1: Install vendors

To install this bundle, you'll need both the Ladybug library and this bundle. Installation depends on your version of Symfony:

Symfony 2.0.x: bin/vendors.php method

If you're using the bin/vendors.php method to manage your vendor libraries, add the following entries to the deps in the root of your project file:



Next, update your vendors by running:

$ ./bin/vendors

Finally, add the following entries to your autoloader:

// app/autoload.php

    // ...
    'Ladybug'           => __DIR__.'/../vendor/ladybug/lib',
    'RaulFraile'        => __DIR__.'/../vendor/bundles',

Symfony 2.1.x: Composer

Composer is a project dependency manager for PHP. You have to list your dependencies in a composer.json file:

    "require": {
        "raulfraile/ladybug-bundle": "dev-master"

To actually install Ladybug in your project, download the composer binary and run it:

# or
curl -O

php composer.phar install

Step 2: Enable the bundle

Finally, enable the bundle in the kernel:

// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        // ...

        new RaulFraile\Bundle\LadybugBundle\RaulFraileLadybugBundle(),


It is possible to dump any variable, including arrays, objects and resources:

Dumping an array

    $var = array(1, 2, 3);

Dumping an object

    $var = new Foo();

Dumping a GD image

    $img = imagecreatefrompng(__DIR__ . '/images/ladybug.png');

The same can be accomplished using the Twig filter ladybug_dump.


The are 5 helpers that can be used in any controller:

ladybug_dump($var1[, $var2[, ...]]): Dumps one or more variables

ladybug_dump_die($var1[, $var2[, ...]]): Dumps one or more variables and terminates the current script

ladybug_dump_return($format, $var1[, $var2[, ...]]): Dumps one or more variables and returns the dump in any of the following formats:

  • yml: Returns the dump in YAML
  • json: Returns the dump in JSON
  • xml: Returns the dump in XML
  • php: Returns the dump in PHP arrays

ladybug_dump_ini([$extension]): Dumps all configuration options

ladybug_dump_ext(): Dumps loaded extensions

There are also some shortcuts in case you are not using this function names:

ld($var1[, $var2[, ...]]): shortcut for ladybug_dump

ldd($var1[, $var2[, ...]]): shortcut for ladybug_dump_die

ldr($format, $var1[, $var2[, ...]]): shortcut for ladybug_return

Only ladybug_dump can be used inside Twig templates.

Symfony command

There are two Symfony commands to dump an instance of a given class or export it to a file, in JSON, YAML or XML format.

# php app/console ladybug:dump class_name [--all]
# php app/console ladybug:export class_name target [--format=yaml]

php app/console ladybug:dump "Symfony\Component\HttpFoundation\Request"
php app/console ladybug:export "Symfony\Component\HttpFoundation\Request" export.json --format=json

Symfony profiler integration

Instead of printing out the dump tree inside the HTML document, you can use the Ladybug logger and see the results in a tab of the Symfony profiler:

To make use of the Ladybug logger, grab the ladybug service from the DIC, and call the log method:

class TestController
    public function testAction()
        $var = 1;

API reference

Ladybug automatically detects Symfony, Doctrine, Twig and Silex classes, and link them to the official documentation.