From b5e39ec1e65462f3d639415546b5c25617a43fbe Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Thu, 23 May 2024 13:24:31 +0200 Subject: [PATCH] Do not require `http_client` service This makes it possible to use AssetMapper with `http_client` disabled on the framework. Example: ```php $configurator->extension( 'framework', [ 'http_client' => [ 'enabled' => false, ], 'asset_mapper' => [ 'paths' => [ 'assets/', ], ], ] ); ``` --- .../FrameworkBundle/Resources/config/asset_mapper.php | 6 +++--- .../AssetMapper/ImportMap/ImportMapUpdateChecker.php | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php index b7ce65f030345..ae7039db2b8f7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/asset_mapper.php @@ -197,7 +197,7 @@ ]) ->set('asset_mapper.importmap.resolver', JsDelivrEsmResolver::class) - ->args([service('http_client')]) + ->args([service('http_client')->nullOnInvalid()]) ->set('asset_mapper.importmap.renderer', ImportMapRenderer::class) ->args([ @@ -212,12 +212,12 @@ ->set('asset_mapper.importmap.auditor', ImportMapAuditor::class) ->args([ service('asset_mapper.importmap.config_reader'), - service('http_client'), + service('http_client')->nullOnInvalid(), ]) ->set('asset_mapper.importmap.update_checker', ImportMapUpdateChecker::class) ->args([ service('asset_mapper.importmap.config_reader'), - service('http_client'), + service('http_client')->nullOnInvalid(), ]) ->set('asset_mapper.importmap.command.require', ImportMapRequireCommand::class) diff --git a/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php b/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php index b64a067609850..3c22499c4d179 100644 --- a/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php +++ b/src/Symfony/Component/AssetMapper/ImportMap/ImportMapUpdateChecker.php @@ -11,16 +11,20 @@ namespace Symfony\Component\AssetMapper\ImportMap; +use Symfony\Component\HttpClient\HttpClient; use Symfony\Contracts\HttpClient\HttpClientInterface; class ImportMapUpdateChecker { private const URL_PACKAGE_METADATA = 'https://registry.npmjs.org/%s'; + private readonly HttpClientInterface $httpClient; + public function __construct( private readonly ImportMapConfigReader $importMapConfigReader, - private readonly HttpClientInterface $httpClient, + ?HttpClientInterface $httpClient = null, ) { + $this->httpClient = $httpClient ?? HttpClient::create(); } /**