Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6d7ca72

Browse files
feature #51284 [FrameworkBundle][HttpKernel][MonologBridge] Revisit wiring of debug loggers (nicolas-grekas)
This PR was merged into the 6.4 branch. Discussion ---------- [FrameworkBundle][HttpKernel][MonologBridge] Revisit wiring of debug loggers | Q | A | ------------- | --- | Branch? | 6.4 | Bug fix? | no | New feature? | yes | Deprecations? | yes | Tickets | - | License | MIT | Doc PR | - Replaces #51229 Implements the suggestions from `@stof` and `@Seldaek` in #51229 (comment) It turns our we had almost everything available. This is mostly a matter of wiring. * Deprecate class `Symfony\Bridge\Monolog\Logger` * Deprecate `AddDebugLogProcessorPass::configureLogger()` * Add `DebugLoggerConfigurator` to HttpKernel, which wires `DebugProcessor` when desired Bonus: * Add argument `$debug` to HttpKernel's `Logger` * Deprecate `EnableLoggerDebugModePass` in favor of the previous Commits ------- 8a6a410 [HttpKernel][MonologBridge][FrameworkBundle] Revisit wiring of debug loggers
2 parents 34f46c6 + 8a6a410 commit 6d7ca72

File tree

20 files changed

+121
-51
lines changed

20 files changed

+121
-51
lines changed

.github/expected-missing-return-types.diff

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ diff --git a/src/Symfony/Bridge/Monolog/Handler/MailerHandler.php b/src/Symfony/
357357
diff --git a/src/Symfony/Bridge/Monolog/Logger.php b/src/Symfony/Bridge/Monolog/Logger.php
358358
--- a/src/Symfony/Bridge/Monolog/Logger.php
359359
+++ b/src/Symfony/Bridge/Monolog/Logger.php
360-
@@ -60,5 +60,5 @@ class Logger extends BaseLogger implements DebugLoggerInterface, ResetInterface
360+
@@ -62,5 +62,5 @@ class Logger extends BaseLogger implements DebugLoggerInterface, ResetInterface
361361
* @return void
362362
*/
363363
- public function removeDebugLogger()
@@ -567,13 +567,13 @@ diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/Add
567567
+ public function process(ContainerBuilder $container): void
568568
{
569569
if (!$container->hasDefinition('profiler')) {
570-
@@ -41,5 +41,5 @@ class AddDebugLogProcessorPass implements CompilerPassInterface
570+
@@ -42,5 +42,5 @@ class AddDebugLogProcessorPass implements CompilerPassInterface
571571
* @return void
572572
*/
573573
- public static function configureLogger(mixed $logger)
574574
+ public static function configureLogger(mixed $logger): void
575575
{
576-
if (\is_object($logger) && method_exists($logger, 'removeDebugLogger') && \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
576+
trigger_deprecation('symfony/framework-bundle', '6.4', 'The "%s()" method is deprecated, use HttpKernel\'s DebugLoggerConfigurator instead.', __METHOD__);
577577
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php
578578
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php
579579
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddExpressionLanguageProvidersPass.php
@@ -687,14 +687,14 @@ diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/Wor
687687
diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
688688
--- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
689689
+++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
690-
@@ -218,5 +218,5 @@ class FrameworkExtension extends Extension
690+
@@ -219,5 +219,5 @@ class FrameworkExtension extends Extension
691691
* @throws LogicException
692692
*/
693693
- public function load(array $configs, ContainerBuilder $container)
694694
+ public function load(array $configs, ContainerBuilder $container): void
695695
{
696696
$loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config'));
697-
@@ -2974,5 +2974,5 @@ class FrameworkExtension extends Extension
697+
@@ -2979,5 +2979,5 @@ class FrameworkExtension extends Extension
698698
* @return void
699699
*/
700700
- public static function registerRateLimiter(ContainerBuilder $container, string $name, array $limiterConfig)
@@ -704,14 +704,14 @@ diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExt
704704
diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
705705
--- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
706706
+++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php
707-
@@ -94,5 +94,5 @@ class FrameworkBundle extends Bundle
707+
@@ -93,5 +93,5 @@ class FrameworkBundle extends Bundle
708708
* @return void
709709
*/
710710
- public function boot()
711711
+ public function boot(): void
712712
{
713713
$_ENV['DOCTRINE_DEPRECATIONS'] = $_SERVER['DOCTRINE_DEPRECATIONS'] ??= 'trigger';
714-
@@ -119,5 +119,5 @@ class FrameworkBundle extends Bundle
714+
@@ -118,5 +118,5 @@ class FrameworkBundle extends Bundle
715715
* @return void
716716
*/
717717
- public function build(ContainerBuilder $container)
@@ -8310,7 +8310,7 @@ diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/FragmentRender
83108310
diff --git a/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php b/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php
83118311
--- a/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php
83128312
+++ b/src/Symfony/Component/HttpKernel/DependencyInjection/LoggerPass.php
8313-
@@ -29,5 +29,5 @@ class LoggerPass implements CompilerPassInterface
8313+
@@ -30,5 +30,5 @@ class LoggerPass implements CompilerPassInterface
83148314
* @return void
83158315
*/
83168316
- public function process(ContainerBuilder $container)

src/Symfony/Bridge/Monolog/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
---
66

77
* Add native return type to `Logger::clear()` and to `DebugProcessor::clear()`
8+
* Deprecate class `Logger`, use HttpKernel's `DebugLoggerConfigurator` instead
89

910
6.1
1011
---

src/Symfony/Bridge/Monolog/Logger.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@
1111

1212
namespace Symfony\Bridge\Monolog;
1313

14+
trigger_deprecation('symfony/monolog-bridge', '6.4', 'The "%s" class is deprecated, use HttpKernel\'s DebugLoggerConfigurator instead.', Logger::class);
15+
1416
use Monolog\Logger as BaseLogger;
1517
use Monolog\ResettableInterface;
1618
use Symfony\Component\HttpFoundation\Request;
1719
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
1820
use Symfony\Contracts\Service\ResetInterface;
1921

2022
/**
21-
* @author Fabien Potencier <[email protected]>
23+
* @deprecated since Symfony 6.4, use HttpKernel's DebugLoggerConfigurator instead
2224
*/
2325
class Logger extends BaseLogger implements DebugLoggerInterface, ResetInterface
2426
{

src/Symfony/Bridge/Monolog/Tests/Handler/FirePHPHandlerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
namespace Symfony\Bridge\Monolog\Tests\Handler;
1313

14+
use Monolog\Logger;
1415
use PHPUnit\Framework\TestCase;
1516
use Symfony\Bridge\Monolog\Handler\FirePHPHandler;
16-
use Symfony\Bridge\Monolog\Logger;
1717
use Symfony\Component\EventDispatcher\EventDispatcher;
1818
use Symfony\Component\HttpFoundation\Request;
1919
use Symfony\Component\HttpFoundation\Response;

src/Symfony/Bridge/Monolog/Tests/Handler/MailerHandlerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313

1414
use Monolog\Formatter\HtmlFormatter;
1515
use Monolog\Formatter\LineFormatter;
16+
use Monolog\Logger;
1617
use Monolog\LogRecord;
1718
use PHPUnit\Framework\MockObject\MockObject;
1819
use PHPUnit\Framework\TestCase;
1920
use Symfony\Bridge\Monolog\Handler\MailerHandler;
20-
use Symfony\Bridge\Monolog\Logger;
2121
use Symfony\Bridge\Monolog\Tests\RecordFactory;
2222
use Symfony\Component\Mailer\MailerInterface;
2323
use Symfony\Component\Mime\Email;

src/Symfony/Bridge/Monolog/Tests/LoggerTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
use Symfony\Bridge\Monolog\Processor\DebugProcessor;
1919
use Symfony\Component\HttpFoundation\Request;
2020

21+
/**
22+
* @group legacy
23+
*/
2124
class LoggerTest extends TestCase
2225
{
2326
public function testGetLogsWithoutDebugProcessor()

src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ CHANGELOG
1010
* Add `DomCrawlerAssertionsTrait::assertAnySelectorTextContains(string $selector, string $text)`
1111
* Add `DomCrawlerAssertionsTrait::assertAnySelectorTextSame(string $selector, string $text)`
1212
* Add `DomCrawlerAssertionsTrait::assertAnySelectorTextNotContains(string $selector, string $text)`
13+
* Deprecate `EnableLoggerDebugModePass`, use argument `$debug` of HttpKernel's `Logger` instead
14+
* Deprecate `AddDebugLogProcessorPass::configureLogger()`, use HttpKernel's `DebugLoggerConfigurator` instead
1315

1416
6.3
1517
---

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddDebugLogProcessorPass.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,19 @@ public function process(ContainerBuilder $container)
3232
return;
3333
}
3434

35-
$definition = $container->getDefinition('monolog.logger_prototype');
36-
$definition->setConfigurator([__CLASS__, 'configureLogger']);
37-
$definition->addMethodCall('pushProcessor', [new Reference('debug.log_processor')]);
35+
$container->getDefinition('monolog.logger_prototype')
36+
->setConfigurator([new Reference('debug.debug_logger_configurator'), 'pushDebugLogger']);
3837
}
3938

4039
/**
40+
* @deprecated since Symfony 6.4, use HttpKernel's DebugLoggerConfigurator instead
41+
*
4142
* @return void
4243
*/
4344
public static function configureLogger(mixed $logger)
4445
{
46+
trigger_deprecation('symfony/framework-bundle', '6.4', 'The "%s()" method is deprecated, use HttpKernel\'s DebugLoggerConfigurator instead.', __METHOD__);
47+
4548
if (\is_object($logger) && method_exists($logger, 'removeDebugLogger') && \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
4649
$logger->removeDebugLogger();
4750
}

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/EnableLoggerDebugModePass.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,15 @@
1111

1212
namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler;
1313

14+
trigger_deprecation('symfony/framework-bundle', '6.4', 'The "%s" class is deprecated, use argument $debug of HttpKernel\'s Logger instead.', EnableLoggerDebugModePass::class);
15+
1416
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
1517
use Symfony\Component\DependencyInjection\ContainerBuilder;
1618
use Symfony\Component\HttpKernel\Log\Logger;
1719

20+
/**
21+
* @deprecated since Symfony 6.4, use argument $debug of HttpKernel's Logger instead
22+
*/
1823
final class EnableLoggerDebugModePass implements CompilerPassInterface
1924
{
2025
public function process(ContainerBuilder $container): void
@@ -32,7 +37,7 @@ public function process(ContainerBuilder $container): void
3237

3338
public static function configureLogger(Logger $logger): void
3439
{
35-
if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && method_exists($logger, 'enableDebug')) {
40+
if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true)) {
3641
$logger->enableDebug();
3742
}
3843
}

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
102102
use Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface;
103103
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
104+
use Symfony\Component\HttpKernel\Log\DebugLoggerConfigurator;
104105
use Symfony\Component\Lock\LockFactory;
105106
use Symfony\Component\Lock\LockInterface;
106107
use Symfony\Component\Lock\PersistingStoreInterface;
@@ -1171,7 +1172,11 @@ private function registerDebugConfiguration(array $config, ContainerBuilder $con
11711172
$definition = new Definition(DebugProcessor::class);
11721173
$definition->setPublic(false);
11731174
$definition->addArgument(new Reference('request_stack'));
1175+
$definition->addTag('kernel.reset', ['method' => 'reset']);
11741176
$container->setDefinition('debug.log_processor', $definition);
1177+
1178+
$container->register('debug.debug_logger_configurator', DebugLoggerConfigurator::class)
1179+
->setArguments([new Reference('debug.log_processor')]);
11751180
}
11761181
}
11771182

0 commit comments

Comments
 (0)