Skip to content

Commit 27d779a

Browse files
committed
minor #554 Use ::class constant (HypeMC)
This PR was merged into the 4.x branch. Discussion ---------- Use `::class` constant | Q | A | ------------- | --- | Branch? | 4.x | Bug fix? | no | New feature? | no | Deprecations? | no | Issues | - | License | MIT Currently, we have a mix of strings and constants. I suggest using constants everywhere. This actually helped me spot #553. I targeted 4.x because there would be a lot of conflicts if done on 3.x. Also, I intentionally didn't import non-Symfony classes, as I think this is more readable. That's just my opinion though, I'm fine with imports as well. Commits ------- fc36540 Use `::class` constant
2 parents c2c37a9 + fc36540 commit 27d779a

File tree

6 files changed

+101
-103
lines changed

6 files changed

+101
-103
lines changed

src/DependencyInjection/Compiler/LoggerChannelPass.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function process(ContainerBuilder $container): void
7575
$binding->setValues($values);
7676

7777
$bindings = $definition->getBindings();
78-
$bindings['Psr\Log\LoggerInterface'] = $binding;
78+
$bindings[LoggerInterface::class] = $binding;
7979
$definition->setBindings($bindings);
8080
}
8181
}

src/DependencyInjection/Configuration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,7 @@ private function addVerbosityLevelSection(ArrayNodeDefinition $handlerNode): voi
988988
->always(function ($v) {
989989
$map = [];
990990
foreach ($v as $verbosity => $level) {
991-
$verbosityConstant = 'Symfony\Component\Console\Output\OutputInterface::'.$verbosity;
991+
$verbosityConstant = \Symfony\Component\Console\Output\OutputInterface::class.'::'.$verbosity;
992992

993993
if (!\defined($verbosityConstant)) {
994994
throw new InvalidConfigurationException(\sprintf('The configured verbosity "%s" is invalid as it is not defined in Symfony\Component\Console\Output\OutputInterface.', $verbosity));

src/DependencyInjection/MonologExtension.php

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
use Monolog\Processor\ProcessorInterface;
1919
use Monolog\Processor\PsrLogMessageProcessor;
2020
use Monolog\ResettableInterface;
21+
use Symfony\Bridge\Monolog\Handler\FingersCrossed\HttpCodeActivationStrategy;
2122
use Symfony\Bridge\Monolog\Processor\TokenProcessor;
23+
use Symfony\Bundle\MonologBundle\MonologBundle;
2224
use Symfony\Component\Config\FileLocator;
2325
use Symfony\Component\DependencyInjection\Argument\BoundArgument;
2426
use Symfony\Component\DependencyInjection\ChildDefinition;
@@ -146,7 +148,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
146148
$definition = new Definition($handlerClass);
147149

148150
if ($handler['include_stacktraces']) {
149-
$definition->setConfigurator(['Symfony\\Bundle\\MonologBundle\\MonologBundle', 'includeStacktraces']);
151+
$definition->setConfigurator([MonologBundle::class, 'includeStacktraces']);
150152
}
151153

152154
if (null === $handler['process_psr_3_messages']['enabled']) {
@@ -192,8 +194,8 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
192194
case 'gelf':
193195
if (isset($handler['publisher']['id'])) {
194196
$publisher = new Reference($handler['publisher']['id']);
195-
} elseif (class_exists('Gelf\Transport\UdpTransport')) {
196-
$transport = new Definition("Gelf\Transport\UdpTransport", [
197+
} elseif (class_exists(\Gelf\Transport\UdpTransport::class)) {
198+
$transport = new Definition(\Gelf\Transport\UdpTransport::class, [
197199
$handler['publisher']['hostname'],
198200
$handler['publisher']['port'],
199201
$handler['publisher']['chunk_size'],
@@ -202,9 +204,9 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
202204

203205
if (isset($handler['publisher']['encoder'])) {
204206
if ('compressed_json' === $handler['publisher']['encoder']) {
205-
$encoderClass = 'Gelf\Encoder\CompressedJsonEncoder';
207+
$encoderClass = \Gelf\Encoder\CompressedJsonEncoder::class;
206208
} elseif ('json' === $handler['publisher']['encoder']) {
207-
$encoderClass = 'Gelf\Encoder\JsonEncoder';
209+
$encoderClass = \Gelf\Encoder\JsonEncoder::class;
208210
} else {
209211
throw new \RuntimeException('The gelf message encoder must be either "compressed_json" or "json".');
210212
}
@@ -215,7 +217,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
215217
$transport->addMethodCall('setMessageEncoder', [$encoder]);
216218
}
217219

218-
$publisher = new Definition('Gelf\Publisher', []);
220+
$publisher = new Definition(\Gelf\Publisher::class, []);
219221
$publisher->addMethodCall('addTransport', [$transport]);
220222
$publisher->setPublic(false);
221223
} else {
@@ -232,7 +234,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
232234
case 'mongo':
233235
trigger_deprecation('symfony/monolog-bundle', '3.11', 'The "mongo" handler type is deprecated in MonologBundle since version 3.11.0, use the "mongodb" type instead.');
234236

235-
if (!class_exists('MongoDB\Client')) {
237+
if (!class_exists(\MongoDB\Client::class)) {
236238
throw new \RuntimeException('The "mongo" handler requires the mongodb/mongodb package to be installed.');
237239
}
238240

@@ -247,7 +249,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
247249

248250
$server .= $handler['mongo']['host'].':'.$handler['mongo']['port'];
249251

250-
$client = new Definition('MongoDB\Client', [
252+
$client = new Definition(\MongoDB\Client::class, [
251253
$server,
252254
['appname' => 'monolog-bundle'],
253255
]);
@@ -263,7 +265,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
263265
break;
264266

265267
case 'mongodb':
266-
if (!class_exists('MongoDB\Client')) {
268+
if (!class_exists(\MongoDB\Client::class)) {
267269
throw new \RuntimeException('The "mongodb" handler requires the mongodb/mongodb package to be installed.');
268270
}
269271

@@ -280,7 +282,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
280282
$uriOptions['password'] = $handler['mongodb']['password'];
281283
}
282284

283-
$client = new Definition('MongoDB\Client', [
285+
$client = new Definition(\MongoDB\Client::class, [
284286
$handler['mongodb']['uri'],
285287
$uriOptions,
286288
]);
@@ -295,7 +297,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
295297
]);
296298

297299
if (empty($handler['formatter'])) {
298-
$formatter = new Definition('Monolog\Formatter\MongoDBFormatter');
300+
$formatter = new Definition(\Monolog\Formatter\MongoDBFormatter::class);
299301
$definition->addMethodCall('setFormatter', [$formatter]);
300302
}
301303
break;
@@ -311,8 +313,8 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
311313
} else {
312314
if ('elastic_search' === $handler['type']) {
313315
// v8 has a new Elastic\ prefix
314-
$client = new Definition(class_exists('Elastic\Elasticsearch\Client') ? 'Elastic\Elasticsearch\Client' : 'Elasticsearch\Client');
315-
$factory = class_exists('Elastic\Elasticsearch\ClientBuilder') ? 'Elastic\Elasticsearch\ClientBuilder' : 'Elasticsearch\ClientBuilder';
316+
$client = new Definition(class_exists(\Elastic\Elasticsearch\Client::class) ? \Elastic\Elasticsearch\Client::class : \Elasticsearch\Client::class);
317+
$factory = class_exists(\Elastic\Elasticsearch\ClientBuilder::class) ? \Elastic\Elasticsearch\ClientBuilder::class : \Elasticsearch\ClientBuilder::class;
316318
$client->setFactory([$factory, 'fromConfig']);
317319
$clientArguments = [
318320
'hosts' => $handler['elasticsearch']['hosts'] ?? [$handler['elasticsearch']['host']],
@@ -322,7 +324,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
322324
$clientArguments['basicAuthentication'] = [$handler['elasticsearch']['user'], $handler['elasticsearch']['password']];
323325
}
324326
} else {
325-
$client = new Definition('Elastica\Client');
327+
$client = new Definition(\Elastica\Client::class);
326328

327329
if (isset($handler['elasticsearch']['hosts'])) {
328330
$clientArguments = [
@@ -441,7 +443,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
441443
if (isset($handler['activation_strategy'])) {
442444
$activation = new Reference($handler['activation_strategy']);
443445
} elseif (!empty($handler['excluded_http_codes'])) {
444-
$activationDef = new Definition('Symfony\Bridge\Monolog\Handler\FingersCrossed\HttpCodeActivationStrategy', [
446+
$activationDef = new Definition(HttpCodeActivationStrategy::class, [
445447
new Reference('request_stack'),
446448
$handler['excluded_http_codes'],
447449
$activation,
@@ -561,7 +563,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
561563
$prototype = new Reference($handler['email_prototype']['id']);
562564
}
563565
} else {
564-
$prototype = (new Definition('Symfony\Component\Mime\Email'))
566+
$prototype = (new Definition(\Symfony\Component\Mime\Email::class))
565567
->setPublic(false)
566568
->addMethodCall('from', [$handler['from_email']])
567569
->addMethodCall('to', $handler['to_email'])
@@ -713,7 +715,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
713715
]);
714716

715717
if (empty($handler['formatter'])) {
716-
$formatter = new Definition("Monolog\Formatter\FlowdockFormatter", [
718+
$formatter = new Definition(\Monolog\Formatter\FlowdockFormatter::class, [
717719
$handler['source'],
718720
$handler['from_email'],
719721
]);
@@ -731,7 +733,7 @@ private function buildHandler(ContainerBuilder $container, string $name, array $
731733
} else {
732734
$config = $handler['config'] ?: [];
733735
$config['access_token'] = $handler['token'];
734-
$rollbar = new Definition('RollbarNotifier', [
736+
$rollbar = new Definition(\RollbarNotifier::class, [
735737
$config,
736738
]);
737739
$rollbarId = 'monolog.rollbar.notifier.'.sha1(json_encode($config));
@@ -826,48 +828,47 @@ private function getHandlerId(string $name): string
826828
private function getHandlerClassByType(string $handlerType): string
827829
{
828830
return match ($handlerType) {
829-
'stream' => 'Monolog\Handler\StreamHandler',
830-
'console' => 'Symfony\Bridge\Monolog\Handler\ConsoleHandler',
831-
'group' => 'Monolog\Handler\GroupHandler',
832-
'buffer' => 'Monolog\Handler\BufferHandler',
833-
'deduplication' => 'Monolog\Handler\DeduplicationHandler',
834-
'rotating_file' => 'Monolog\Handler\RotatingFileHandler',
835-
'syslog' => 'Monolog\Handler\SyslogHandler',
836-
'syslogudp' => 'Monolog\Handler\SyslogUdpHandler',
837-
'null' => 'Monolog\Handler\NullHandler',
838-
'test' => 'Monolog\Handler\TestHandler',
839-
'gelf' => 'Monolog\Handler\GelfHandler',
840-
'rollbar' => 'Monolog\Handler\RollbarHandler',
841-
'flowdock' => 'Monolog\Handler\FlowdockHandler',
842-
'browser_console' => 'Monolog\Handler\BrowserConsoleHandler',
843-
'firephp' => 'Symfony\Bridge\Monolog\Handler\FirePHPHandler',
844-
'chromephp' => 'Symfony\Bridge\Monolog\Handler\ChromePhpHandler',
845-
'native_mailer' => 'Monolog\Handler\NativeMailerHandler',
846-
'symfony_mailer' => 'Symfony\Bridge\Monolog\Handler\MailerHandler',
847-
'socket' => 'Monolog\Handler\SocketHandler',
848-
'pushover' => 'Monolog\Handler\PushoverHandler',
849-
'newrelic' => 'Monolog\Handler\NewRelicHandler',
850-
'slack' => 'Monolog\Handler\SlackHandler',
851-
'slackwebhook' => 'Monolog\Handler\SlackWebhookHandler',
852-
'cube' => 'Monolog\Handler\CubeHandler',
853-
'amqp' => 'Monolog\Handler\AmqpHandler',
854-
'error_log' => 'Monolog\Handler\ErrorLogHandler',
855-
'loggly' => 'Monolog\Handler\LogglyHandler',
856-
'logentries' => 'Monolog\Handler\LogEntriesHandler',
857-
'whatfailuregroup' => 'Monolog\Handler\WhatFailureGroupHandler',
858-
'fingers_crossed' => 'Monolog\Handler\FingersCrossedHandler',
859-
'filter' => 'Monolog\Handler\FilterHandler',
860-
'mongo' => 'Monolog\Handler\MongoDBHandler',
861-
'mongodb' => 'Monolog\Handler\MongoDBHandler',
862-
'telegram' => 'Monolog\Handler\TelegramBotHandler',
863-
'server_log' => 'Symfony\Bridge\Monolog\Handler\ServerLogHandler',
864-
'redis', 'predis' => 'Monolog\Handler\RedisHandler',
865-
'insightops' => 'Monolog\Handler\InsightOpsHandler',
866-
'sampling' => 'Monolog\Handler\SamplingHandler',
867-
'elastica' => 'Monolog\Handler\ElasticaHandler',
868-
'elastic_search' => 'Monolog\Handler\ElasticsearchHandler',
869-
'fallbackgroup' => 'Monolog\Handler\FallbackGroupHandler',
870-
'noop' => 'Monolog\Handler\NoopHandler',
831+
'stream' => \Monolog\Handler\StreamHandler::class,
832+
'console' => \Symfony\Bridge\Monolog\Handler\ConsoleHandler::class,
833+
'group' => \Monolog\Handler\GroupHandler::class,
834+
'buffer' => \Monolog\Handler\BufferHandler::class,
835+
'deduplication' => \Monolog\Handler\DeduplicationHandler::class,
836+
'rotating_file' => \Monolog\Handler\RotatingFileHandler::class,
837+
'syslog' => \Monolog\Handler\SyslogHandler::class,
838+
'syslogudp' => \Monolog\Handler\SyslogUdpHandler::class,
839+
'null' => \Monolog\Handler\NullHandler::class,
840+
'test' => \Monolog\Handler\TestHandler::class,
841+
'gelf' => \Monolog\Handler\GelfHandler::class,
842+
'rollbar' => \Monolog\Handler\RollbarHandler::class,
843+
'flowdock' => \Monolog\Handler\FlowdockHandler::class,
844+
'browser_console' => \Monolog\Handler\BrowserConsoleHandler::class,
845+
'firephp' => \Symfony\Bridge\Monolog\Handler\FirePHPHandler::class,
846+
'chromephp' => \Symfony\Bridge\Monolog\Handler\ChromePhpHandler::class,
847+
'native_mailer' => \Monolog\Handler\NativeMailerHandler::class,
848+
'symfony_mailer' => \Symfony\Bridge\Monolog\Handler\MailerHandler::class,
849+
'socket' => \Monolog\Handler\SocketHandler::class,
850+
'pushover' => \Monolog\Handler\PushoverHandler::class,
851+
'newrelic' => \Monolog\Handler\NewRelicHandler::class,
852+
'slack' => \Monolog\Handler\SlackHandler::class,
853+
'slackwebhook' => \Monolog\Handler\SlackWebhookHandler::class,
854+
'cube' => \Monolog\Handler\CubeHandler::class,
855+
'amqp' => \Monolog\Handler\AmqpHandler::class,
856+
'error_log' => \Monolog\Handler\ErrorLogHandler::class,
857+
'loggly' => \Monolog\Handler\LogglyHandler::class,
858+
'logentries' => \Monolog\Handler\LogEntriesHandler::class,
859+
'whatfailuregroup' => \Monolog\Handler\WhatFailureGroupHandler::class,
860+
'fingers_crossed' => \Monolog\Handler\FingersCrossedHandler::class,
861+
'filter' => \Monolog\Handler\FilterHandler::class,
862+
'mongo','mongodb' => \Monolog\Handler\MongoDBHandler::class,
863+
'telegram' => \Monolog\Handler\TelegramBotHandler::class,
864+
'server_log' => \Symfony\Bridge\Monolog\Handler\ServerLogHandler::class,
865+
'redis', 'predis' => \Monolog\Handler\RedisHandler::class,
866+
'insightops' => \Monolog\Handler\InsightOpsHandler::class,
867+
'sampling' => \Monolog\Handler\SamplingHandler::class,
868+
'elastica' => \Monolog\Handler\ElasticaHandler::class,
869+
'elastic_search' => \Monolog\Handler\ElasticsearchHandler::class,
870+
'fallbackgroup' => \Monolog\Handler\FallbackGroupHandler::class,
871+
'noop' => \Monolog\Handler\NoopHandler::class,
871872
default => throw new \InvalidArgumentException(\sprintf('There is no handler class defined for handler "%s".', $handlerType)),
872873
};
873874
}

tests/DependencyInjection/Compiler/LoggerChannelPassTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public function testAutowiredLoggerArgumentsAreReplacedWithChannelLogger()
8181
{
8282
$container = $this->getFunctionalContainer();
8383

84-
$dummyService = $container->register('dummy_service', 'Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Compiler\DummyService')
84+
$dummyService = $container->register('dummy_service', DummyService::class)
8585
->setAutowired(true)
8686
->setPublic(true)
8787
->addTag('monolog.logger', ['channel' => 'test']);
@@ -95,10 +95,10 @@ public function testAutowiredLoggerArgumentsAreReplacedWithChannelLoggerWhenAuto
9595
{
9696
$container = $this->getFunctionalContainer();
9797

98-
$container->registerForAutoconfiguration('Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Compiler\DummyService')
98+
$container->registerForAutoconfiguration(DummyService::class)
9999
->setProperty('fake', 'dummy');
100100

101-
$container->register('dummy_service', 'Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Compiler\DummyService')
101+
$container->register('dummy_service', DummyService::class)
102102
->setAutowired(true)
103103
->setAutoconfigured(true)
104104
->setPublic(true)
@@ -113,7 +113,7 @@ public function testAutowiredLoggerArgumentsAreNotReplacedWithChannelLoggerIfLog
113113
{
114114
$container = $this->getFunctionalContainer();
115115

116-
$dummyService = $container->register('dummy_service', 'Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Compiler\DummyService')
116+
$dummyService = $container->register('dummy_service', DummyService::class)
117117
->setAutowired(true)
118118
->addArgument(new Reference('monolog.logger'))
119119
->addTag('monolog.logger', ['channel' => 'test']);
@@ -127,7 +127,7 @@ public function testTagNotBreakingIfNoLogger()
127127
{
128128
$container = $this->getFunctionalContainer();
129129

130-
$dummyService = $container->register('dummy_service', 'stdClass')
130+
$dummyService = $container->register('dummy_service', \stdClass::class)
131131
->addTag('monolog.logger', ['channel' => 'test']);
132132

133133
$container->compile();

0 commit comments

Comments
 (0)