Skip to content

Commit 63176d9

Browse files
committed
Fix bug and add deprecated warning for removed
1 parent 69e9e4b commit 63176d9

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

DependencyInjection/MonologExtension.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -947,15 +947,23 @@ private function getHandlerClassByType($handlerType)
947947
$v2HandlerTypesRemoved = [
948948
'hipchat',
949949
'raven',
950+
'slackbot',
950951
];
951952

952953
if (Logger::API === 2) {
953954
$typeToClassMapping = array_merge($typeToClassMapping, $v2HandlerTypesAdded);
954-
foreach($v2HandlerTypesRemoved as $handlerType) {
955-
unset($typeToClassMapping[$handlerType]);
955+
foreach($v2HandlerTypesRemoved as $v2HandlerTypeRemoved) {
956+
unset($typeToClassMapping[$v2HandlerTypeRemoved]);
956957
}
957958
}
958959

960+
if (Logger::API === 1 && array_key_exists($handlerType, $v2HandlerTypesRemoved)) {
961+
@trigger_error(
962+
sprintf('"%s" is deprecated and will be removed in MonoLog v2.', $handlerType),
963+
E_USER_DEPRECATED
964+
);
965+
}
966+
959967
if (!isset($typeToClassMapping[$handlerType])) {
960968
if (Logger::API === 1 && array_key_exists($handlerType, $v2HandlerTypesAdded)) {
961969
throw new InvalidArgumentException(

Tests/DependencyInjection/MonologExtensionTest.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Bundle\MonologBundle\Tests\DependencyInjection;
1313

14+
use Monolog\Logger;
1415
use Symfony\Bundle\MonologBundle\DependencyInjection\MonologExtension;
1516
use Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\LoggerChannelPass;
1617
use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -532,6 +533,35 @@ public function testFingersCrossedHandlerWhenExcludedHttpCodesAreSpecified()
532533
$this->assertDICConstructorArguments($handler, [new Reference('monolog.handler.nested'), new Reference('monolog.handler.main.http_code_strategy'), 0, true, true, null]);
533534
}
534535

536+
/**
537+
* @param string $handlerType
538+
* @dataProvider v2RemovedDataProvider
539+
*/
540+
public function testMonologV2RemovedOnV1($handlerType)
541+
{
542+
if (Logger::API === 2) {
543+
$this->doesNotPerformAssertions();
544+
545+
return;
546+
}
547+
548+
$this->expectException(InvalidConfigurationException::class);
549+
550+
$container = new ContainerBuilder();
551+
$loader = new MonologExtension();
552+
553+
$loader->load([['handlers' => ['main' => ['type' => $handlerType]]]], $container);
554+
}
555+
556+
public function v2RemovedDataProvider()
557+
{
558+
return [
559+
['hipchat'],
560+
['raven'],
561+
['slackbot'],
562+
];
563+
}
564+
535565
protected function getContainer(array $config = [], array $thirdPartyDefinitions = [])
536566
{
537567
$container = new ContainerBuilder();

0 commit comments

Comments
 (0)