First Commit

This commit is contained in:
mark committed 2026-10-19 15:22:52 -07:00
1 parent 5eb9dd037d
commit 2e62c0e60b
11877 files changed
+2035312

No files matched your search

@@ -0,0 +1,45 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Config\Definition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
use Symfony\Component\Config\Definition\Loader\DefinitionFileLoader;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
/**
* @author Yonel Ceruto <yonelceruto@gmail.com>
*
* @final
*/
class Configuration implements ConfigurationInterface
{
public function __construct(
private ConfigurableInterface $subject,
private ?ContainerBuilder $container,
private string $alias,
) {
}
public function getConfigTreeBuilder(): TreeBuilder
{
$treeBuilder = new TreeBuilder($this->alias);
$file = (new \ReflectionObject($this->subject))->getFileName();
$loader = new DefinitionFileLoader($treeBuilder, new FileLocator(\dirname($file)), $this->container);
$configurator = new DefinitionConfigurator($treeBuilder, $loader, $file, $file);
$this->subject->configure($configurator);
return $treeBuilder;
}
}