FestinHegre/vendor/symfony/stimulus-bundle/config/services.php
2024-09-26 17:26:04 +02:00

85 lines
3.4 KiB
PHP

<?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.
*/
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symfony\UX\StimulusBundle\AssetMapper\AutoImportLocator;
use Symfony\UX\StimulusBundle\AssetMapper\ControllersMapGenerator;
use Symfony\UX\StimulusBundle\AssetMapper\StimulusLoaderJavaScriptCompiler;
use Symfony\UX\StimulusBundle\Helper\StimulusHelper;
use Symfony\UX\StimulusBundle\Twig\StimulusTwigExtension;
use Symfony\UX\StimulusBundle\Twig\UxControllersTwigExtension;
use Symfony\UX\StimulusBundle\Twig\UxControllersTwigRuntime;
use Symfony\UX\StimulusBundle\Ux\UxPackageReader;
use Twig\Environment;
use function Symfony\Component\DependencyInjection\Loader\Configurator\abstract_arg;
use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (ContainerConfigurator $container): void {
$container->services()
->set('stimulus.helper', StimulusHelper::class)
->args([
service(Environment::class)->nullOnInvalid(),
])
->set('stimulus.twig_extension', StimulusTwigExtension::class)
->args([
service('stimulus.helper'),
])
// negative priority actually causes the stimulus_ functions from this
// bundle to be used instead of the ones from WebpackEncoreBundle.
->tag('twig.extension', ['priority' => -10])
->set('stimulus.asset_mapper.ux_package_reader', UxPackageReader::class)
->args([
param('kernel.project_dir'),
])
// symfony/asset-mapper services
->set('stimulus.ux_controllers_twig_extension', UxControllersTwigExtension::class)
->tag('twig.extension')
->set('stimulus.ux_controllers_twig_runtime', UxControllersTwigRuntime::class)
->args([
service('stimulus.asset_mapper.controllers_map_generator'),
service('asset_mapper'),
service('stimulus.asset_mapper.ux_package_reader'),
param('kernel.project_dir'),
])
->tag('twig.runtime')
->set('stimulus.asset_mapper.controllers_map_generator', ControllersMapGenerator::class)
->args([
service('asset_mapper'),
service('stimulus.asset_mapper.ux_package_reader'),
abstract_arg('controller paths'),
abstract_arg('controllers_json_path'),
// @legacy - only allowing null for framework-bundle 6.3
service('stimulus.asset_mapper.auto_import_locator')->nullOnInvalid(),
])
// @legacy - is removed in 6.3
->set('stimulus.asset_mapper.auto_import_locator', AutoImportLocator::class)
->args([
service('asset_mapper.importmap.config_reader'),
service('asset_mapper'),
])
->set('stimulus.asset_mapper.loader_javascript_compiler', StimulusLoaderJavaScriptCompiler::class)
->args([
service('stimulus.asset_mapper.controllers_map_generator'),
param('kernel.debug'),
])
->tag('asset_mapper.compiler', ['priority' => 100])
;
};