[AssetBundle] Move xml service configuration to php
This commit is contained in:
parent
813d220aa1
commit
74650610ff
@ -315,7 +315,7 @@ class FrameworkExtension extends Extension
|
||||
throw new LogicException('Asset support cannot be enabled as the Asset component is not installed. Try running "composer require symfony/asset".');
|
||||
}
|
||||
|
||||
$this->registerAssetsConfiguration($config['assets'], $container, $loader);
|
||||
$this->registerAssetsConfiguration($config['assets'], $container, $phpLoader);
|
||||
}
|
||||
|
||||
if ($this->messengerConfigEnabled = $this->isConfigEnabled($container, $config['messenger'])) {
|
||||
@ -990,9 +990,9 @@ class FrameworkExtension extends Extension
|
||||
}
|
||||
}
|
||||
|
||||
private function registerAssetsConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
|
||||
private function registerAssetsConfiguration(array $config, ContainerBuilder $container, PhpFileLoader $loader)
|
||||
{
|
||||
$loader->load('assets.xml');
|
||||
$loader->load('assets.php');
|
||||
|
||||
if ($config['version_strategy']) {
|
||||
$defaultVersion = new Reference($config['version_strategy']);
|
||||
|
@ -0,0 +1,89 @@
|
||||
<?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\DependencyInjection\Loader\Configurator;
|
||||
|
||||
use Symfony\Component\Asset\Context\RequestStackContext;
|
||||
use Symfony\Component\Asset\Package;
|
||||
use Symfony\Component\Asset\Packages;
|
||||
use Symfony\Component\Asset\PathPackage;
|
||||
use Symfony\Component\Asset\UrlPackage;
|
||||
use Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy;
|
||||
use Symfony\Component\Asset\VersionStrategy\JsonManifestVersionStrategy;
|
||||
use Symfony\Component\Asset\VersionStrategy\RemoteJsonManifestVersionStrategy;
|
||||
use Symfony\Component\Asset\VersionStrategy\StaticVersionStrategy;
|
||||
|
||||
return static function (ContainerConfigurator $container) {
|
||||
$container->parameters()
|
||||
->set('asset.request_context.base_path', null)
|
||||
->set('asset.request_context.secure', null)
|
||||
;
|
||||
|
||||
$container->services()
|
||||
->set('assets.packages', Packages::class)
|
||||
->args([
|
||||
service('assets.empty_package'),
|
||||
[],
|
||||
])
|
||||
|
||||
->alias(Packages::class, 'assets.packages')
|
||||
|
||||
->set('assets.empty_package', Package::class)
|
||||
->args([
|
||||
service('assets.empty_version_strategy'),
|
||||
])
|
||||
|
||||
->set('assets.context', RequestStackContext::class)
|
||||
->args([
|
||||
service('request_stack'),
|
||||
param('asset.request_context.base_path'),
|
||||
param('asset.request_context.secure'),
|
||||
])
|
||||
|
||||
->set('assets.path_package', PathPackage::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('base path'),
|
||||
abstract_arg('version strategy'),
|
||||
service('assets.context'),
|
||||
])
|
||||
|
||||
->set('assets.url_package', UrlPackage::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('base URLs'),
|
||||
abstract_arg('version strategy'),
|
||||
service('assets.context'),
|
||||
])
|
||||
|
||||
->set('assets.static_version_strategy', StaticVersionStrategy::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('version'),
|
||||
abstract_arg('format'),
|
||||
])
|
||||
|
||||
->set('assets.empty_version_strategy', EmptyVersionStrategy::class)
|
||||
|
||||
->set('assets.json_manifest_version_strategy', JsonManifestVersionStrategy::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('manifest path'),
|
||||
])
|
||||
|
||||
->set('assets.remote_json_manifest_version_strategy', RemoteJsonManifestVersionStrategy::class)
|
||||
->abstract()
|
||||
->args([
|
||||
abstract_arg('manifest url'),
|
||||
service('http_client'),
|
||||
])
|
||||
;
|
||||
};
|
@ -1,59 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<parameters>
|
||||
<parameter key="asset.request_context.base_path">null</parameter>
|
||||
<parameter key="asset.request_context.secure">null</parameter>
|
||||
</parameters>
|
||||
|
||||
<services>
|
||||
<defaults public="false" />
|
||||
|
||||
<service id="assets.packages" class="Symfony\Component\Asset\Packages">
|
||||
<argument type="service" id="assets.empty_package" /> <!-- default package -->
|
||||
<argument type="collection" /> <!-- named packages -->
|
||||
</service>
|
||||
<service id="Symfony\Component\Asset\Packages" alias="assets.packages" />
|
||||
|
||||
<service id="assets.empty_package" class="Symfony\Component\Asset\Package">
|
||||
<argument type="service" id="assets.empty_version_strategy" />
|
||||
</service>
|
||||
|
||||
<service id="assets.context" class="Symfony\Component\Asset\Context\RequestStackContext">
|
||||
<argument type="service" id="request_stack" />
|
||||
<argument>%asset.request_context.base_path%</argument>
|
||||
<argument>%asset.request_context.secure%</argument>
|
||||
</service>
|
||||
|
||||
<service id="assets.path_package" class="Symfony\Component\Asset\PathPackage" abstract="true">
|
||||
<argument /> <!-- base path -->
|
||||
<argument /> <!-- version strategy -->
|
||||
<argument type="service" id="assets.context" />
|
||||
</service>
|
||||
|
||||
<service id="assets.url_package" class="Symfony\Component\Asset\UrlPackage" abstract="true">
|
||||
<argument /> <!-- base URLs -->
|
||||
<argument /> <!-- version strategy -->
|
||||
<argument type="service" id="assets.context" />
|
||||
</service>
|
||||
|
||||
<service id="assets.static_version_strategy" class="Symfony\Component\Asset\VersionStrategy\StaticVersionStrategy" abstract="true">
|
||||
<argument /> <!-- version -->
|
||||
<argument /> <!-- format -->
|
||||
</service>
|
||||
|
||||
<service id="assets.empty_version_strategy" class="Symfony\Component\Asset\VersionStrategy\EmptyVersionStrategy" />
|
||||
|
||||
<service id="assets.json_manifest_version_strategy" class="Symfony\Component\Asset\VersionStrategy\JsonManifestVersionStrategy" abstract="true">
|
||||
<argument /> <!-- manifest path -->
|
||||
</service>
|
||||
|
||||
<service id="assets.remote_json_manifest_version_strategy" class="Symfony\Component\Asset\VersionStrategy\RemoteJsonManifestVersionStrategy" abstract="true">
|
||||
<argument /> <!-- manifest url -->
|
||||
<argument type="service" id="http_client" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
Reference in New Issue
Block a user