Overview

Namespaces

  • RM
    • AssetsCollector
      • Compilers

Classes

  • AssetsCollectorExtension
  • JsCssMacros
  • Package
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: namespace RM\AssetsCollector;
 3: 
 4: use \Nette\Config\Configurator,
 5:     \Nette\Config\Compiler,
 6:     \Nette\Config\CompilerExtension;
 7: 
 8: 
 9: /**
10:  * Class for register extension AssetsCollector.
11:  *
12:  * @author Roman Mátyus
13:  * @copyright (c) Roman Mátyus 2012
14:  * @license MIT
15:  */
16: class AssetsCollectorExtension extends CompilerExtension
17: {
18:     /**
19:      * Method setings extension.
20:      */
21:     public function loadConfiguration()
22:     {
23:         $builder = $this->getContainerBuilder();
24: 
25:         $config = $this->getConfig(array(
26:             'cssPath' => WWW_DIR.'/style/css',
27:             'jsPath' => WWW_DIR.'/style/js',
28:             'webTemp' => WWW_DIR.'/webtemp',
29:             'wwwDir' => WWW_DIR,
30:             'maxSize' => 1024,
31:             'packages' => array(),
32:             'addCss' => array(),
33:             'addJs' => array(),
34:             'addPackage' => array(),
35:             'removeOld' => FALSE,
36:             'addCssCompiler' => array(),
37:             'addJsCompiler' => array(),
38:             'enabledCompilers' => array(),
39:             'mergeFiles' => false,
40:         ));
41: 
42:         $builder->addDefinition($this->prefix('cssSimpleMinificator'))
43:             ->setClass('\RM\AssetsCollector\Compilers\CssSimpleMinificator');
44: 
45:         $builder->addDefinition($this->prefix('imageToDataStream'))
46:             ->setClass('\RM\AssetsCollector\Compilers\ImageToDataStream')
47:             ->addSetup('$cssPath', $config['cssPath'])
48:             ->addSetup('$wwwDir', $config['wwwDir'])
49:             ->addSetup('$maxSize', $config['maxSize']);
50: 
51:         $builder->addDefinition($this->prefix('imageReplacer'))
52:             ->setClass('\RM\AssetsCollector\Compilers\ImageReplacer')
53:             ->addSetup('$cssPath', $config['cssPath'])
54:             ->addSetup('$wwwDir', $config['wwwDir'])
55:             ->addSetup('$webTemp', $config['webTemp']);
56: 
57:         $config = array_merge($config,array(
58:             'addCssCompiler' => array(
59:                 '@' . $this->prefix('cssSimpleMinificator'),
60:                 '@' . $this->prefix('imageToDataStream'),
61:                 '@' . $this->prefix('imageReplacer'),
62:             ),
63:         ));
64: 
65:         $builder->addDefinition($this->prefix('collector'))
66:             ->setClass('\RM\AssetsCollector')
67:             ->addSetup('$cssPath', $config['cssPath'])
68:             ->addSetup('$jsPath', $config['jsPath'])
69:             ->addSetup('$webTemp', $config['webTemp'])
70:             ->addSetup('$removeOld', $config['removeOld'])
71:             ->addSetup('setPackages', array($config['packages']))
72:             ->addSetup('addPackages', array($config['addPackage']))
73:             ->addSetup('addCssCompiler', array($config['addCssCompiler']))
74:             ->addSetup('addJsCompiler', array($config['addJsCompiler']))
75:             ->addSetup('$enabledCompilers', array($config['enabledCompilers']))
76:             ->addSetup('addCss', array($config['addCss']))
77:             ->addSetup('addJs', array($config['addJs']))
78:             ->addSetup('$mergeFiles', array($config['mergeFiles']))
79:             ->addSetup('checkRequirements');
80: 
81:         $builder->getDefinition('nette.latte')
82:             ->addSetup('\RM\AssetsCollector\JsCssMacros::install(?->compiler)', array('@self'));
83:     }
84: 
85:     /**
86:      * Register AssetsCollector to application.
87:      * @param \Nette\Config\Configurator $config
88:      */
89:     public static function register(Configurator $config)
90:     {
91:         $config->onCompile[] = function (Configurator $config, Compiler $compiler) {
92:             $compiler->addExtension('assetsCollector', new AssetsCollectorExtension());
93:         };
94:     }
95: }
96: 
API documentation generated by ApiGen 2.8.0