From c6ff8384b368a6a224f494fc3e004dfe25874b35 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 29 May 2024 09:04:13 +0200 Subject: [PATCH] don't register some AssetMapper services without configured HTTP clients --- .../FrameworkExtension.php | 8 ++- .../Resources/config/asset_mapper.php | 45 ------------- .../config/asset_mapper_http_client.php | 63 +++++++++++++++++++ 3 files changed, 69 insertions(+), 47 deletions(-) create mode 100644 src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper_http_client.php diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 45b9ba7bf87ed..588c2e5f21bba 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -349,7 +349,7 @@ public function load(array $configs, ContainerBuilder $container) throw new LogicException('AssetMapper support cannot be enabled as the AssetMapper component is not installed. Try running "composer require symfony/asset-mapper".'); } - $this->registerAssetMapperConfiguration($config['asset_mapper'], $container, $loader, $this->readConfigEnabled('assets', $container, $config['assets'])); + $this->registerAssetMapperConfiguration($config['asset_mapper'], $container, $loader, $this->readConfigEnabled('assets', $container, $config['assets']), $this->readConfigEnabled('http_client', $container, $config['http_client'])); } else { $container->removeDefinition('cache.asset_mapper'); } @@ -1330,7 +1330,7 @@ private function registerAssetsConfiguration(array $config, ContainerBuilder $co } } - private function registerAssetMapperConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader, bool $assetEnabled): void + private function registerAssetMapperConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader, bool $assetEnabled, bool $httpClientEnabled): void { $loader->load('asset_mapper.php'); @@ -1399,6 +1399,10 @@ private function registerAssetMapperConfiguration(array $config, ContainerBuilde ->replaceArgument(3, $config['importmap_polyfill']) ->replaceArgument(4, $config['importmap_script_attributes']) ; + + if ($httpClientEnabled) { + $loader->load('asset_mapper_http_client.php'); + } } /** diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php index b7ce65f030345..df71bcb501871 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php @@ -18,9 +18,7 @@ use Symfony\Component\AssetMapper\AssetMapperRepository; use Symfony\Component\AssetMapper\Command\AssetMapperCompileCommand; use Symfony\Component\AssetMapper\Command\DebugAssetMapperCommand; -use Symfony\Component\AssetMapper\Command\ImportMapAuditCommand; use Symfony\Component\AssetMapper\Command\ImportMapInstallCommand; -use Symfony\Component\AssetMapper\Command\ImportMapOutdatedCommand; use Symfony\Component\AssetMapper\Command\ImportMapRemoveCommand; use Symfony\Component\AssetMapper\Command\ImportMapRequireCommand; use Symfony\Component\AssetMapper\Command\ImportMapUpdateCommand; @@ -30,16 +28,11 @@ use Symfony\Component\AssetMapper\Compiler\SourceMappingUrlsCompiler; use Symfony\Component\AssetMapper\Factory\CachedMappedAssetFactory; use Symfony\Component\AssetMapper\Factory\MappedAssetFactory; -use Symfony\Component\AssetMapper\ImportMap\ImportMapAuditor; use Symfony\Component\AssetMapper\ImportMap\ImportMapConfigReader; use Symfony\Component\AssetMapper\ImportMap\ImportMapGenerator; -use Symfony\Component\AssetMapper\ImportMap\ImportMapManager; use Symfony\Component\AssetMapper\ImportMap\ImportMapRenderer; -use Symfony\Component\AssetMapper\ImportMap\ImportMapUpdateChecker; use Symfony\Component\AssetMapper\ImportMap\ImportMapVersionChecker; -use Symfony\Component\AssetMapper\ImportMap\RemotePackageDownloader; use Symfony\Component\AssetMapper\ImportMap\RemotePackageStorage; -use Symfony\Component\AssetMapper\ImportMap\Resolver\JsDelivrEsmResolver; use Symfony\Component\AssetMapper\MapperAwareAssetPackage; use Symfony\Component\AssetMapper\Path\LocalPublicAssetsFilesystem; use Symfony\Component\AssetMapper\Path\PublicAssetsPathResolver; @@ -162,15 +155,6 @@ service('asset_mapper.importmap.remote_package_storage'), ]) - ->set('asset_mapper.importmap.manager', ImportMapManager::class) - ->args([ - service('asset_mapper'), - service('asset_mapper.importmap.config_reader'), - service('asset_mapper.importmap.remote_package_downloader'), - service('asset_mapper.importmap.resolver'), - ]) - ->alias(ImportMapManager::class, 'asset_mapper.importmap.manager') - ->set('asset_mapper.importmap.generator', ImportMapGenerator::class) ->args([ service('asset_mapper'), @@ -183,22 +167,12 @@ abstract_arg('vendor directory'), ]) - ->set('asset_mapper.importmap.remote_package_downloader', RemotePackageDownloader::class) - ->args([ - service('asset_mapper.importmap.remote_package_storage'), - service('asset_mapper.importmap.config_reader'), - service('asset_mapper.importmap.resolver'), - ]) - ->set('asset_mapper.importmap.version_checker', ImportMapVersionChecker::class) ->args([ service('asset_mapper.importmap.config_reader'), service('asset_mapper.importmap.remote_package_downloader'), ]) - ->set('asset_mapper.importmap.resolver', JsDelivrEsmResolver::class) - ->args([service('http_client')]) - ->set('asset_mapper.importmap.renderer', ImportMapRenderer::class) ->args([ service('asset_mapper.importmap.generator'), @@ -209,17 +183,6 @@ service('request_stack'), ]) - ->set('asset_mapper.importmap.auditor', ImportMapAuditor::class) - ->args([ - service('asset_mapper.importmap.config_reader'), - service('http_client'), - ]) - ->set('asset_mapper.importmap.update_checker', ImportMapUpdateChecker::class) - ->args([ - service('asset_mapper.importmap.config_reader'), - service('http_client'), - ]) - ->set('asset_mapper.importmap.command.require', ImportMapRequireCommand::class) ->args([ service('asset_mapper.importmap.manager'), @@ -244,13 +207,5 @@ param('kernel.project_dir'), ]) ->tag('console.command') - - ->set('asset_mapper.importmap.command.audit', ImportMapAuditCommand::class) - ->args([service('asset_mapper.importmap.auditor')]) - ->tag('console.command') - - ->set('asset_mapper.importmap.command.outdated', ImportMapOutdatedCommand::class) - ->args([service('asset_mapper.importmap.update_checker')]) - ->tag('console.command') ; }; diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper_http_client.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper_http_client.php new file mode 100644 index 0000000000000..6905a52b5b083 --- /dev/null +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper_http_client.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\DependencyInjection\Loader\Configurator; + +use Symfony\Component\AssetMapper\Command\ImportMapAuditCommand; +use Symfony\Component\AssetMapper\Command\ImportMapOutdatedCommand; +use Symfony\Component\AssetMapper\ImportMap\ImportMapAuditor; +use Symfony\Component\AssetMapper\ImportMap\ImportMapManager; +use Symfony\Component\AssetMapper\ImportMap\ImportMapUpdateChecker; +use Symfony\Component\AssetMapper\ImportMap\RemotePackageDownloader; +use Symfony\Component\AssetMapper\ImportMap\Resolver\JsDelivrEsmResolver; + +return static function (ContainerConfigurator $container) { + $container->services() + ->set('asset_mapper.importmap.auditor', ImportMapAuditor::class) + ->args([ + service('asset_mapper.importmap.config_reader'), + service('http_client'), + ]) + + ->set('asset_mapper.importmap.command.audit', ImportMapAuditCommand::class) + ->args([service('asset_mapper.importmap.auditor')]) + ->tag('console.command') + + ->set('asset_mapper.importmap.command.outdated', ImportMapOutdatedCommand::class) + ->args([service('asset_mapper.importmap.update_checker')]) + ->tag('console.command') + + ->set('asset_mapper.importmap.manager', ImportMapManager::class) + ->args([ + service('asset_mapper'), + service('asset_mapper.importmap.config_reader'), + service('asset_mapper.importmap.remote_package_downloader'), + service('asset_mapper.importmap.resolver'), + ]) + ->alias(ImportMapManager::class, 'asset_mapper.importmap.manager') + + ->set('asset_mapper.importmap.remote_package_downloader', RemotePackageDownloader::class) + ->args([ + service('asset_mapper.importmap.remote_package_storage'), + service('asset_mapper.importmap.config_reader'), + service('asset_mapper.importmap.resolver'), + ]) + + ->set('asset_mapper.importmap.resolver', JsDelivrEsmResolver::class) + ->args([service('http_client')]) + + ->set('asset_mapper.importmap.update_checker', ImportMapUpdateChecker::class) + ->args([ + service('asset_mapper.importmap.config_reader'), + service('http_client'), + ]) + ; +}; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy