/** * * @param string $name * @param array $formula * * @return void */ public function setFormula($name, array $formula) { $formulas = $this->getCache()->has('assetic') ? unserialize($this->getCache()->get('assetic')) : array(); if (!is_array($formulas)) { $formulas = array(); } if (array_key_exists($name, $formulas)) { return; } $formulas[$name] = $this->makeFormulaSerializable($formula); $this->getCache()->set('assetic', serialize($formulas)); return parent::setFormula($name, $formula); }
/** * Registers services on the given container. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Container $pimple An Container instance */ public function register(Container $pimple) { /* * Default configuration. */ $pimple['assetic.debug'] = false; $pimple['assetic.assets'] = array(); $pimple['assetic.variables'] = array(); $pimple['assetic.register_functions'] = true; $pimple['assetic.java.bin'] = '/usr/bin/java'; $pimple['assetic.node.bin'] = '/usr/bin/node'; $pimple['assetic.node.paths'] = array(); $pimple['assetic.ruby.bin'] = '/usr/bin/ruby'; $pimple['assetic.sass.bin'] = '/usr/bin/sass'; /* * Finds IDs of all Asset Manager services. */ $pimple['assetic.asset_managers'] = $pimple->factory(function (Container $c) { $ids = preg_grep(self::ASSET_MANAGER_MATCH, $c->keys()); return $ids; }); /* * Asset Factory configuration happens here * * @param Container $c * @return mixed */ $pimple['assetic'] = function (Container $c) { // initializing lazy asset manager if (isset($c['assetic.assets']) && is_array($c['assetic.assets']) && !empty($c['assetic.assets'])) { $c['assetic.lazy_asset_manager']; } return $c['assetic.factory']; }; /* * Factory * * @param Container $c * @return AssetFactory */ $pimple['assetic.factory'] = function (Container $c) { $root = isset($c['assetic.read_from']) ? $c['assetic.read_from'] : $c['assetic.write_to']; $factory = new AssetFactory($root, $c['assetic.debug']); $factory->setAssetManager($c['assetic.asset_manager']); $factory->setFilterManager($c['assetic.filter_manager']); // Optionally enable the global asset functions. if ($c['assetic.register_functions']) { assetic_init($factory); } return $factory; }; /* * Asset writer, writes to the 'assetic.write_to' folder * * @param Container $c * @return AssetWriter */ $pimple['assetic.asset_writer'] = function (Container $c) { return new AssetWriter($c['assetic.write_to']); }; /* * Asset manager * * @return AssetManager */ $pimple['assetic.asset_manager'] = function () { return new AssetManager(); }; /* * Filter manager * * @return FilterManager */ $pimple['assetic.filter_manager'] = function () { return new FilterManager(); }; /* * Lazy asset manager for loading assets from $pimple['assetic.assets'] * * @param Container $c * @return \Assetic\Factory\LazyAssetManager */ $pimple['assetic.lazy.asset_manager'] = function (Container $c) { $lazy = new LazyAssetManager($c['assetic.factory']); foreach ($c['assetic.assets'] as $name => $formula) { $lazy->setFormula($name, $formula); } return $lazy; }; }