de19e13113e59f139dc6065094e9ad55ca5f53a5
[yaffs-website] / vendor / symfony / http-kernel / EventListener / DumpListener.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\HttpKernel\EventListener;
13
14 use Symfony\Component\Console\ConsoleEvents;
15 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
16 use Symfony\Component\VarDumper\Cloner\ClonerInterface;
17 use Symfony\Component\VarDumper\Dumper\DataDumperInterface;
18 use Symfony\Component\VarDumper\VarDumper;
19
20 /**
21  * Configures dump() handler.
22  *
23  * @author Nicolas Grekas <p@tchwork.com>
24  */
25 class DumpListener implements EventSubscriberInterface
26 {
27     private $cloner;
28     private $dumper;
29
30     public function __construct(ClonerInterface $cloner, DataDumperInterface $dumper)
31     {
32         $this->cloner = $cloner;
33         $this->dumper = $dumper;
34     }
35
36     public function configure()
37     {
38         $cloner = $this->cloner;
39         $dumper = $this->dumper;
40
41         VarDumper::setHandler(function ($var) use ($cloner, $dumper) {
42             $dumper->dump($cloner->cloneVar($var));
43         });
44     }
45
46     public static function getSubscribedEvents()
47     {
48         if (!class_exists(ConsoleEvents::class)) {
49             return array();
50         }
51
52         // Register early to have a working dump() as early as possible
53         return array(ConsoleEvents::COMMAND => array('configure', 1024));
54     }
55 }