Files
Fabien Potencier c142a3268e Merge branch '3.x' into 4.x
* 3.x:
  Fix CHANGELOG
  Fix support for ignoring syntax erros in an undefined handler in guard
  Add missing CHANGELOG
  Fix timezone conversion on strings
  Use correct lineno for ForElseNode
  Add support for registered undefined element callbacks in tests
  Add UnaryInterface
  Add BinaryInterface
  Reimplement the cache tag in an adhoc way
  Fix CS
  Fix wrong array index
  Fix wrong array index
  Bump min PHP version to 8.1
  Add even more tests
  Add some tests on balanced brackets
  Bump version
  Prepare the 3.19.0 release
  Added configuration for commonmark use in twig-extra-bundle.
2025-02-09 18:23:27 +01:00

53 lines
1.8 KiB
PHP

<?php
/*
* This file is part of Twig.
*
* (c) Fabien Potencier
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Twig\Extra\TwigExtraBundle\DependencyInjection;
use League\CommonMark\CommonMarkConverter;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Twig\Extra\TwigExtraBundle\Extensions;
/**
* @author Fabien Potencier <fabien@symfony.com>
*/
class TwigExtraExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container): void
{
$loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config'));
$configuration = $this->getConfiguration($configs, $container);
$config = $this->processConfiguration($configuration, $configs);
if ($container->getParameter('kernel.debug')) {
$loader->load('suggestor.php');
}
foreach (array_keys(Extensions::getClasses()) as $extension) {
if ($this->isConfigEnabled($container, $config[$extension])) {
$loader->load($extension.'.php');
if ('markdown' === $extension && class_exists(CommonMarkConverter::class)) {
$loader->load('markdown_league.php');
if ($container->hasDefinition('twig.markdown.league_common_mark_converter_factory')) {
$container
->getDefinition('twig.markdown.league_common_mark_converter_factory')
->setArgument('$config', $config['commonmark'] ?? []);
}
}
}
}
}
}