X-Git-Url: https://git.rapsys.eu/.gitweb.cgi/packbundle/blobdiff_plain/575d559e5aea5e099ba7784547b1aa359d28fb8c..22c6a9aae25e6f650086527456f0d3cdb6891970:/Twig/PackExtension.php?ds=sidebyside

diff --git a/Twig/PackExtension.php b/Twig/PackExtension.php
index 3b4aa07..23cceb6 100644
--- a/Twig/PackExtension.php
+++ b/Twig/PackExtension.php
@@ -4,47 +4,46 @@ namespace Rapsys\PackBundle\Twig;
 
 use Symfony\Component\HttpKernel\Config\FileLocator;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Asset\Packages;
 
 class PackExtension extends \Twig_Extension {
-	#, $prefix = '@RapsysPackBundle/Resources/public/', $cpack = '/usr/local/bin/cpack', $jpack = '/usr/local/bin/jpack'
-	#$this->kernel = $kernel;
-	public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface) {
+	//The config
+	private $config;
+
+	//The output
+	private $output;
+
+	//The filter
+	private $filters;
+
+	public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, Packages $assetsPackages) {
 		//Set file locator
 		$this->fileLocator = $fileLocator;
 		//Set container interface
 		$this->containerInterface = $containerInterface;
+		//Set assets packages
+		$this->assetsPackages = $assetsPackages;
 
-		//Set default prefix
-		$this->prefix = '@RapsysPackBundle/Resources/public/';
-
-		//Set default coutput
-		$this->coutput = 'css/*.pack.css';
-		//Set default joutput
-		$this->joutput = 'js/*.pack.js';
-
-		//Set default cpack
-		$this->cpack = '/usr/local/bin/cpack';
-		//Set default jpack
-		$this->jpack = '/usr/local/bin/jpack';
-
-		//Load configuration
-		if ($containerInterface->hasParameter('rapsys_pack')) {
-			foreach($containerInterface->getParameter('rapsys_pack') as $k => $v) {
-				if (isset($this->$k)) {
-					$this->$k = $v;
-				}
+		//Retrieve bundle config
+		if ($parameters = $containerInterface->getParameter($this->getAlias())) {
+			foreach($parameters as $k => $v) {
+				$this->$k = $v;
 			}
 		}
-
-		//Fix prefix
-		$this->prefix = $this->fileLocator->locate($this->prefix);
 	}
 
 	public function getTokenParsers() {
 		return array(
-			new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'stylesheets', $this->coutput, $this->cpack),
-			new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'javascripts', $this->joutput, $this->jpack),
-			#new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'image', '*.pack.{tld}'),
+			new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'stylesheet', $this->output['css'], $this->filters['css']),
+			new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'javascript', $this->output['js'], $this->filters['js']),
+			new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'image', $this->output['img'], $this->filters['img'])
 		);
 	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function getAlias() {
+		return 'rapsys_pack';
+	}
 }