]> Raphaƫl G. Git Repositories - packbundle/blobdiff - Extension/PackExtension.php
Version 0.5.2
[packbundle] / Extension / PackExtension.php
index 118de0c1a96006682189b29c58e94db0b1bbf455..71075482791cddec8f6c63ff5b86fdb4400417d6 100644 (file)
 
 namespace Rapsys\PackBundle\Extension;
 
 
 namespace Rapsys\PackBundle\Extension;
 
+use Rapsys\PackBundle\Parser\TokenParser;
+use Rapsys\PackBundle\RapsysPackBundle;
+use Rapsys\PackBundle\Util\IntlUtil;
+use Rapsys\PackBundle\Util\SluggerUtil;
+
 use Symfony\Component\Asset\PackageInterface;
 use Symfony\Component\Asset\PackageInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpKernel\Config\FileLocator;
 use Symfony\Component\HttpKernel\Config\FileLocator;
-use Twig\Extension\AbstractExtension;
 
 
-use Rapsys\PackBundle\Util\SluggerUtil;
-use Rapsys\PackBundle\Parser\TokenParser;
+use Twig\Extension\AbstractExtension;
 
 /**
  * {@inheritdoc}
  */
 class PackExtension extends AbstractExtension {
 
 /**
  * {@inheritdoc}
  */
 class PackExtension extends AbstractExtension {
-       //The config
-       private $config;
-
-       //The output
-       private $output;
-
-       //The filter
-       private $filters;
-
-       //The file locator
-       protected $locator;
-
-       //The slugger instance
-       protected $slugger;
-
-       //The assets package
-       protected $package;
-
        /**
        /**
-        * @link https://twig.symfony.com/doc/2.x/advanced.html
-        *
         * {@inheritdoc}
         * {@inheritdoc}
+        *
+        * @link https://twig.symfony.com/doc/2.x/advanced.html
         */
         */
-       public function __construct(FileLocator $locator, ContainerInterface $container, PackageInterface $package, SluggerUtil $slugger) {
-               //Set file locator
-               $this->locator = $locator;
-
-               //Set slugger
-               $this->slugger = $slugger;
-
-               //Set assets packages
-               $this->package = $package;
-
-               //Retrieve bundle config
-               if ($parameters = $container->getParameter($this->getAlias())) {
-                       //Set config, output and filters arrays
-                       foreach(['config', 'output', 'filters'] as $k) {
-                               $this->$k = $parameters[$k];
-                       }
-               }
+       public function __construct(protected IntlUtil $intl, protected FileLocator $locator, protected PackageInterface $package, protected SluggerUtil $slugger, protected array $parameters) {
        }
 
        /**
        }
 
        /**
-        * Returns a list of filters to add to the existing list.
+        * Returns a filter array to add to the existing list.
         *
         * @return \Twig\TwigFilter[]
         */
        public function getTokenParsers(): array {
                return [
         *
         * @return \Twig\TwigFilter[]
         */
        public function getTokenParsers(): array {
                return [
-                       new TokenParser($this->locator, $this->package, $this->config, 'stylesheet', $this->output['css'], $this->filters['css']),
-                       new TokenParser($this->locator, $this->package, $this->config, 'javascript', $this->output['js'], $this->filters['js']),
-                       new TokenParser($this->locator, $this->package, $this->config, 'image', $this->output['img'], $this->filters['img'])
+                       new TokenParser($this->locator, $this->package, $this->parameters['token'], 'stylesheet', $this->parameters['output']['css'], $this->parameters['filters']['css']),
+                       new TokenParser($this->locator, $this->package, $this->parameters['token'], 'javascript', $this->parameters['output']['js'], $this->parameters['filters']['js']),
+                       new TokenParser($this->locator, $this->package, $this->parameters['token'], 'image', $this->parameters['output']['img'], $this->parameters['filters']['img'])
                ];
        }
 
        /**
                ];
        }
 
        /**
-        * Returns a list of filters to add to the existing list.
+        * Returns a filter array to add to the existing list.
         *
         * @return \Twig\TwigFilter[]
         */
        public function getFilters(): array {
                return [
         *
         * @return \Twig\TwigFilter[]
         */
        public function getFilters(): array {
                return [
+                       new \Twig\TwigFilter('lcfirst', 'lcfirst'),
+                       new \Twig\TwigFilter('ucfirst', 'ucfirst'),
                        new \Twig\TwigFilter('hash', [$this->slugger, 'hash']),
                        new \Twig\TwigFilter('unshort', [$this->slugger, 'unshort']),
                        new \Twig\TwigFilter('hash', [$this->slugger, 'hash']),
                        new \Twig\TwigFilter('unshort', [$this->slugger, 'unshort']),
-                       new \Twig\TwigFilter('short', [$this->slugger, 'short'])
+                       new \Twig\TwigFilter('short', [$this->slugger, 'short']),
+                       new \Twig\TwigFilter('slug', [$this->slugger, 'slug']),
+                       new \Twig\TwigFilter('intldate', [$this->intl, 'date'], ['needs_environment' => true]),
+                       new \Twig\TwigFilter('intlnumber', [$this->intl, 'number']),
+                       new \Twig\TwigFilter('intlcurrency', [$this->intl, 'currency']),
+                       new \Twig\TwigFilter('download', 'file_get_contents', [false, null]),
+                       new \Twig\TwigFilter('base64_encode', 'base64_encode'),
+                       new \Twig\TwigFilter('base64_decode', 'base64_decode')
                ];
        }
                ];
        }
-
-       /**
-        * {@inheritdoc}
-        */
-       public function getAlias(): string {
-               return 'rapsys_pack';
-       }
 }
 }