SilexAssetic\AsseticServiceProvider::register PHP Method

register() public method

public register ( Pimple\Container $app )
$app Pimple\Container
    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;
            });
        }
    }

Usage Example

 public function register(Container $app)
 {
     parent::register($app);
     // we need to inject an asset "namespace aware" factory
     $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 NamespaceAwareAssetFactory($root, $app['assetic.options']['debug']);
         $factory->setAssetManager($app['assetic.asset_manager']);
         $factory->setFilterManager($app['assetic.filter_manager']);
         return $factory;
     };
     // we need a dumper which can decide not to dump
     $app['assetic.dumper'] = function () use($app) {
         $dumper = new WatchingDumper($app['assetic.asset_manager'], $app['assetic.lazy_asset_manager'], $app['assetic.asset_writer'], $app['assetic.path_to_web']);
         if (isset($app['twig'])) {
             $dumper->setTwig($app['twig'], $app['twig.loader.filesystem']);
         }
         return $dumper;
     };
 }
AsseticServiceProvider