/** * {@inheritdoc} */ public function prepend(ContainerBuilder $container) { if (!$container->hasExtension('assetic')) { throw new \LogicException('The assetic bundle is required.'); } $asseticConfig = $container->getExtensionConfig('assetic')[0]; $assetConfig = $container->getExtensionConfig('ynlo_assets')[0]; //Assetic base configuration $asseticConfig['bundles'][] = 'YnloFrameworkBundle'; $asseticConfig['filters']['cssrewrite'] = null; if (empty($asseticConfig['assets'])) { $asseticConfig['assets'] = []; } $useRequireJs = !isset($assetConfig['requirejs']) || $assetConfig['requirejs'] !== false; AssetRegistry::build($container, $useRequireJs); if ($useRequireJs) { AssetRegistry::prependAssets([AssetFactory::asset('requirejs', 'bundles/ynloassets/vendor/requirejs/require.min.js'), AssetFactory::asset('requirejs_config', 'bundles/ynloassets/js/require_js_config.js', ['require_js_config'])]); AssetRegistry::addAsset(AssetFactory::asset('jquery_plugins_overrides', 'bundles/ynloassets/js/jquery_plugins_overrides.js', ['jquery_plugin_override'])); } $this->processAssetContexts($container); //save the array of assets in a param to restore the registry later $container->setParameter('ynlo.assets', AssetRegistry::serialize()); $registeredAssets = AssetRegistry::getAsseticAssetsArray(); $asseticConfig['assets'] = array_merge($registeredAssets, $asseticConfig['assets']); $container->prependExtensionConfig('assetic', $asseticConfig); }
public function testGetRegisteredAssets() { $registry = new AssetRegistry($this->container); $assets = $registry->getAsseticAssetsArray(); self::assertContains('bundles/ynloframework/vendor/jquery/jquery.min.js', $assets['all_js']['inputs']); self::assertContains('bundles/ynloframework/js/core.yfp.js', $assets['all_js']['inputs']); self::assertContains('bundles/ynloadmin/js/admin.yfp.js', $assets['all_js']['inputs']); self::assertContains('bundles/ynloframework/vendor/bootstrap/css/bootstrap.min.css', $assets['all_css']['inputs']); self::assertContains('bundles/ynloadmin/vendor/admin-lte/css/AdminLTE.min.css', $assets['all_css']['inputs']); self::assertContains('bundles/ynloframework/vendor/jquery/jquery.min.js', $assets['jquery']['inputs']); }