public function ProfilerPass::process in Devel 8
Same name and namespace in other branches
- 8.3 webprofiler/src/Compiler/ProfilerPass.php \Drupal\webprofiler\Compiler\ProfilerPass::process()
- 8.2 webprofiler/src/Compiler/ProfilerPass.php \Drupal\webprofiler\Compiler\ProfilerPass::process()
- 4.x webprofiler/src/Compiler/ProfilerPass.php \Drupal\webprofiler\Compiler\ProfilerPass::process()
Parameters
\Symfony\Component\DependencyInjection\ContainerBuilder $container:
Throws
\InvalidArgumentException
File
- webprofiler/
src/ Compiler/ ProfilerPass.php, line 20
Class
- ProfilerPass
- Class ProfilerPass
Namespace
Drupal\webprofiler\CompilerCode
public function process(ContainerBuilder $container) {
// configure the profiler service
if (FALSE === $container
->hasDefinition('profiler')) {
return;
}
$definition = $container
->getDefinition('profiler');
$collectors = new \SplPriorityQueue();
$order = PHP_INT_MAX;
foreach ($container
->findTaggedServiceIds('data_collector') as $id => $attributes) {
$priority = isset($attributes[0]['priority']) ? $attributes[0]['priority'] : 0;
$template = NULL;
if (isset($attributes[0]['template'])) {
if (!isset($attributes[0]['id'])) {
throw new \InvalidArgumentException(sprintf('Data collector service "%s" must have an id attribute in order to specify a template', $id));
}
if (!isset($attributes[0]['title'])) {
throw new \InvalidArgumentException(sprintf('Data collector service "%s" must have a title attribute', $id));
}
$template = [
$attributes[0]['id'],
$attributes[0]['template'],
$attributes[0]['title'],
];
}
$collectors
->insert([
$id,
$template,
], [
-$priority,
--$order,
]);
}
$templates = [];
foreach ($collectors as $collector) {
$definition
->addMethodCall('add', [
new Reference($collector[0]),
]);
$templates[$collector[0]] = $collector[1];
}
$container
->setParameter('data_collector.templates', $templates);
// set parameter to store the public folder path
$path = 'file:' . DRUPAL_ROOT . '/' . PublicStream::basePath() . '/profiler';
$container
->setParameter('data_collector.storage', $path);
}