Skip to content

Commit 509f826

Browse files
Merge pull request #1 from koderhut/fix-monolog-channel-registration
Fix Monolog channels registering
2 parents bbb5032 + 329e1ac commit 509f826

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

DependencyInjection/Compiler/RegisterMonologChannels.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use KoderHut\OnelogBundle\OneLog;
66
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
77
use Symfony\Component\DependencyInjection\ContainerBuilder;
8+
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
89
use Symfony\Component\DependencyInjection\Reference;
910

1011
/**
@@ -19,7 +20,13 @@ class RegisterMonologChannels implements CompilerPassInterface
1920
*/
2021
public function process(ContainerBuilder $container)
2122
{
22-
if (!$container->getParameter('onelog.register_monolog_channels') || !$container->hasDefinition($container->getParameter('onelog.logger_service'))) {
23+
try {
24+
$monolog = $container->findDefinition('monolog.logger');
25+
} catch (ServiceNotFoundException $exc) {
26+
$monolog = false;
27+
}
28+
29+
if (!$container->getParameter('onelog.register_monolog_channels') || false === $monolog) {
2330
return;
2431
}
2532

Tests/DependencyInjection/Compiler/RegisterMonologChannelsTest.php

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,28 @@ class RegisterMonologChannelsTest extends TestCase
2828
*/
2929
public function testExitEarlyIfNotEnabled()
3030
{
31-
$container = $this->getContainer(['logger_service' => 'logger']);
31+
$container = $this->getContainer(['logger_service' => 'monolog.logger']);
32+
$container->compile();
33+
34+
$this->assertTrue($container->hasParameter('onelog.register_monolog_channels'));
35+
$this->assertFalse($container->getParameter('onelog.register_monolog_channels'));
36+
37+
$onelogDefinition = $container->getDefinition(OneLog::class);
38+
$args = $onelogDefinition->getArguments();
39+
$methodCalls = $onelogDefinition->getMethodCalls();
40+
41+
$this->assertCount(1, $args);
42+
$this->assertCount(0, $methodCalls);
43+
}
44+
45+
/**
46+
* @test
47+
*/
48+
public function testExitEarlyIfMonologServiceIsNotDefined()
49+
{
50+
$container = $this->getContainer(['logger_service' => 'monolog.logger']);
51+
$container->removeDefinition('monolog.logger');
52+
$container->compile();
3253

3354
$this->assertTrue($container->hasParameter('onelog.register_monolog_channels'));
3455
$this->assertFalse($container->getParameter('onelog.register_monolog_channels'));
@@ -46,7 +67,8 @@ public function testExitEarlyIfNotEnabled()
4667
*/
4768
public function testRegisterAllMonologChannels()
4869
{
49-
$container = $this->getContainer(['logger_service' => 'logger', 'register_monolog_channels' => true]);
70+
$container = $this->getContainer(['logger_service' => 'monolog.logger', 'register_monolog_channels' => true]);
71+
$container->compile();
5072

5173
$this->assertTrue($container->hasParameter('onelog.register_monolog_channels'));
5274
$this->assertTrue($container->getParameter('onelog.register_monolog_channels'));
@@ -80,15 +102,13 @@ protected function getContainer(array $params)
80102
$loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../../../Resources/config'));
81103
$loader->load('onelog.xml');
82104

83-
$container->addDefinitions(['logger' => $logger]);
105+
$container->addDefinitions(['monolog.logger' => $logger]);
84106
$container->addDefinitions(['monolog.logger.test0' => $logger]);
85107
$container->addDefinitions(['monolog.logger.test1' => $logger]);
86108
$container->registerExtension(new OnelogExtension());
87109
$container->loadFromExtension('onelog', $params);
88110
$container->addCompilerPass(new RegisterMonologChannels());
89111

90-
$container->compile();
91-
92112
return $container;
93113
}
94114
}

0 commit comments

Comments
 (0)