public function register(Container $app)
{
$app['assetic.options'] = array();
/**
* Asset Factory configuration happens here
*/
$app['assetic'] = function () use($app) {
$app['assetic.options'] = array_replace(array('debug' => isset($app['debug']) ? $app['debug'] : false, 'formulae_cache_dir' => null, 'auto_dump_assets' => isset($app['debug']) ? !$app['debug'] : true), $app['assetic.options']);
// initializing lazy asset manager
if (isset($app['assetic.formulae']) && !is_array($app['assetic.formulae']) && !empty($app['assetic.formulae'])) {
$app['assetic.lazy_asset_manager'];
}
return $app['assetic.factory'];
};
/**
* Factory
*
* @return Assetic\Factory\AssetFactory
*/
$app['assetic.factory'] = function () use($app) {
$root = isset($app['assetic.path_to_source']) ? $app['assetic.path_to_source'] : $app['assetic.path_to_web'];
$factory = new AssetFactory($root, $app['assetic.options']['debug']);
$factory->setAssetManager($app['assetic.asset_manager']);
$factory->setFilterManager($app['assetic.filter_manager']);
return $factory;
};
/**
* Asset writer, writes to the 'assetic.path_to_web' folder
*
* @return Assetic\AssetWriter
*/
$app['assetic.asset_writer'] = function () use($app) {
return new AssetWriter($app['assetic.path_to_web']);
};
/**
* Asset manager
*
* @return Assetic\AssetManager
*/
$app['assetic.asset_manager'] = function () use($app) {
return new AssetManager();
};
/**
* Filter manager
*
* @return Assetic\FilterManager
*/
$app['assetic.filter_manager'] = function () use($app) {
return new FilterManager();
};
/**
* Lazy asset manager for loading assets from $app['assetic.formulae']
* (will be later maybe removed)
*/
$app['assetic.lazy_asset_manager'] = function () use($app) {
$formulae = isset($app['assetic.formulae']) ? $app['assetic.formulae'] : array();
$options = $app['assetic.options'];
$lazy = new LazyAssetmanager($app['assetic.factory']);
if (empty($formulae)) {
return $lazy;
}
foreach ($formulae as $name => $formula) {
$lazy->setFormula($name, $formula);
}
if ($options['formulae_cache_dir'] !== null && $options['debug'] !== true) {
foreach ($lazy->getNames() as $name) {
$lazy->set($name, new AssetCache($lazy->get($name), new FilesystemCache($options['formulae_cache_dir'])));
}
}
return $lazy;
};
$app['assetic.dumper'] = function () use($app) {
return new Dumper($app['assetic.asset_manager'], $app['assetic.lazy_asset_manager'], $app['assetic.asset_writer']);
};
if (isset($app['twig'])) {
$app->extend('twig', function ($twig, $app) {
$twig->addExtension(new AsseticExtension($app['assetic']));
return $twig;
});
$app->extend('assetic.lazy_asset_manager', function ($am, $app) {
$am->setLoader('twig', new TwigFormulaLoader($app['twig']));
return $am;
});
$app->extend('assetic.dumper', function ($helper, $app) {
$helper->setTwig($app['twig'], $app['twig.loader.filesystem']);
return $helper;
});
}
}