diff --git a/AssetsBundle/DependencyInjection/Configuration.php b/AssetsBundle/DependencyInjection/Configuration.php index 2f0ac4d..cdd0f7b 100644 --- a/AssetsBundle/DependencyInjection/Configuration.php +++ b/AssetsBundle/DependencyInjection/Configuration.php @@ -39,6 +39,10 @@ public function addTypes(NodeBuilder $node) ->prototype('array') ->addDefaultsIfNotSet() ->children() + ->arrayNode('manifest_assets') + ->prototype('scalar') + ->end() + ->end() ->arrayNode('assets') ->defaultValue([]) ->prototype('array') @@ -95,7 +99,9 @@ private function addOptions(NodeBuilder $nodeBuilder) ->end() ->scalarNode('base_path') ->isRequired() - ->end(); + ->end() + ->scalarNode('manifest_file') + ->end(); // @formatter:on return $this; diff --git a/AssetsBundle/DependencyInjection/DocplannerAssetsExtension.php b/AssetsBundle/DependencyInjection/DocplannerAssetsExtension.php index d68d802..ec084e3 100644 --- a/AssetsBundle/DependencyInjection/DocplannerAssetsExtension.php +++ b/AssetsBundle/DependencyInjection/DocplannerAssetsExtension.php @@ -50,6 +50,34 @@ public function load(array $configs, ContainerBuilder $container) $asset['url'] = $url; $asset['path'] = $path; } + + $manifest = []; + + if(!empty($config['manifest_file'])) + { + $manifestFile=$config['manifest_file']; + + if(is_file($manifestFile) && is_readable($manifestFile)) + { + $manifest = file_get_contents($manifestFile); + $manifest = @json_decode($manifest, true) ?? []; + } + } + + foreach($typeConfig['manifest_assets'] ?? [] as $manifestKey) + { + if(!empty($manifest[$manifestKey])) + { + $manifestAsset = $manifest[$manifestKey]; + + $typeConfig['assets'][$manifestKey] = [ + 'src' => $manifestAsset, + 'url' => $config['base_host'].$manifestAsset, + 'path' => $config['base_path'].$manifestAsset, + 'inline' => false, + ]; + } + } } $container->setParameter('docplanner_assets.config', $config); diff --git a/composer.json b/composer.json index 98b412b..ff4f966 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ } ], "require": { - "php": ">=5.3.3", + "php": ">=7.1", "symfony/framework-bundle": "~2.3|~3.0", "twig/twig": "1.*" },