Ejemplo n.º 1
0
 /**
  *
  * @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;
     };
 }