TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,67 @@
<?php
declare(strict_types=1);
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
namespace TYPO3\CMS\Core\DependencyInjection;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Reference;
use TYPO3\CMS\Core\Log\Logger;
use TYPO3\CMS\Core\Log\LogManager;
/**
* @internal
*/
final class LoggerAwarePass implements CompilerPassInterface
{
/**
* @var string
*/
private $tagName;
public function __construct(string $tagName)
{
$this->tagName = $tagName;
}
public function process(ContainerBuilder $container): void
{
$channelExtractor = new LogChannelExtractor();
foreach ($container->findTaggedServiceIds($this->tagName) as $id => $tags) {
$definition = $container->findDefinition($id);
if (!$definition->isAutowired() || $definition->isAbstract()) {
continue;
}
$channel = $id;
if ($definition->getClass()) {
$reflectionClass = $container->getReflectionClass($definition->getClass(), false);
if ($reflectionClass) {
$channel = $channelExtractor->getClassChannelName($reflectionClass) ?? $definition->getClass();
}
}
$logger = new Definition(Logger::class);
$logger->setFactory([new Reference(LogManager::class), 'getLogger']);
$logger->setArguments([$channel]);
$logger->setShared(false);
$definition->addMethodCall('setLogger', [$logger]);
}
}
}