/** * Registers services on the given app. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Application $app An Application instance */ public function register(Application $app) { $app['ladybug.options'] = array('theme' => 'modern', 'expanded' => false, 'silenced' => false, 'array_max_nesting_level' => 9, 'object_max_nesting_level' => 3); $app['ladybug.dumper'] = $app->share(function () use($app) { $dumper = new Dumper(); $dumper->setOptions($app['ladybug.options']); return $dumper; }); $app['ladybug'] = $app->share(function () use($app) { return new LadybugDataCollector($app['ladybug.dumper']); }); $app['twig'] = $app->share($app->extend('twig', function (\Twig_Environment $twig, $app) { $twig->addExtension(new LadybugExtension($app)); return $twig; })); if (isset($app['profiler'])) { $app['twig.loader.filesystem'] = $app->share($app->extend('twig.loader.filesystem', function ($loader, $app) { $loader->addPath($app['rswork.templates_path'], 'Rswork'); return $loader; })); $app['rswork.templates_path'] = function () { return realpath(__DIR__ . '/../../views'); }; $app['data_collector.templates'] = array_merge($app['data_collector.templates'], array(array('ladybug', '@Rswork/collector/ladybug.html.twig'))); $app['data_collectors'] = $app->share($app->extend('data_collectors', function ($collectors, $app) { $collectors['ladubug'] = $app->share(function ($app) { return $app['ladybug']; }); return $collectors; })); } }