Skip to content

Commit 28f27c8

Browse files
committed
Added controller name generator, some minor fixes
1 parent 0acf437 commit 28f27c8

File tree

4 files changed

+60
-10
lines changed

4 files changed

+60
-10
lines changed

src/DependencyInjection/JaegerExtension.php

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,30 @@ public function load(array $configs, ContainerBuilder $container)
2727
if ($this->isConfigEnabled($container, $config['name_generator'])) {
2828
$container->setParameter('jaeger.name.max_length', (int)$config['name_generator']['max_length']);
2929
foreach ($config['name_generator']['request'] as $item => $alias) {
30-
$container->getDefinition('jaeger.name.generator.request')->addMethodCall(
31-
'add',
32-
[$item, new Reference($alias)]
33-
);
30+
if ($container->has(\sprintf('jaeger.name.generator.%s', $alias))) {
31+
$container->getDefinition('jaeger.name.generator.request')->addMethodCall(
32+
'add',
33+
[$item, new Reference(\sprintf('jaeger.name.generator.%s', $alias))]
34+
);
35+
} else {
36+
$container->getDefinition('jaeger.name.generator.request')->addMethodCall(
37+
'add',
38+
[$item, new Reference($alias)]
39+
);
40+
}
3441
}
3542
foreach ($config['name_generator']['command'] as $item => $alias) {
36-
$container->getDefinition('jaeger.name.generator.command')->addMethodCall(
37-
'add',
38-
[$item, new Reference($alias)]
39-
);
43+
if ($container->has(\sprintf('jaeger.name.generator.%s', $alias))) {
44+
$container->getDefinition('jaeger.name.generator.command')->addMethodCall(
45+
'add',
46+
[$item, new Reference(\sprintf('jaeger.name.generator.%s', $alias))]
47+
);
48+
} else {
49+
$container->getDefinition('jaeger.name.generator.command')->addMethodCall(
50+
'add',
51+
[$item, new Reference($alias)]
52+
);
53+
}
4054
}
4155
}
4256
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
namespace Jaeger\Symfony\Name\Generator;
4+
5+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
6+
use Symfony\Component\HttpKernel\Event\RequestEvent;
7+
use Symfony\Component\HttpKernel\Event\TerminateEvent;
8+
9+
class ControllerNameGenerator implements NameGeneratorInterface, EventSubscriberInterface
10+
{
11+
private string $controller;
12+
13+
public static function getSubscribedEvents(): array
14+
{
15+
return [RequestEvent::class => ['onRequest', 30], TerminateEvent::class => ['onTerminate', -16384],];
16+
}
17+
18+
public function onRequest(RequestEvent $event): void
19+
{
20+
$this->controller = $event->getRequest()->attributes->get('_controller', '');
21+
}
22+
23+
public function onTerminate(): void
24+
{
25+
$this->controller = '';
26+
}
27+
28+
public function generate(): string
29+
{
30+
return $this->controller;
31+
}
32+
}

src/Name/Generator/NameGeneratorChain.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ public function generate(): string
2323
{
2424
$queue = clone $this->queue;
2525
while (false === $queue->isEmpty()) {
26-
if ('' !== ($debugId = $queue->extract()->generate())) {
27-
return $debugId;
26+
if ('' !== ($name = $queue->extract()->generate())) {
27+
return $name;
2828
}
2929
}
3030

src/Resources/services.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ services:
127127
- '@spl.priority.queue'
128128
jaeger.debug.extractor:
129129
alias: 'jaeger.debug.extractor.chain'
130+
jaeger.name.generator.controller:
131+
class: Jaeger\Symfony\Name\Generator\ControllerNameGenerator
132+
tags:
133+
- {name: 'kernel.event_subscriber' }
130134
jaeger.name.generator.default:
131135
class: Jaeger\Symfony\Name\Generator\DefaultNameGenerator
132136
tags:

0 commit comments

Comments
 (0)