X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/b4279c702b5ec4553538e19b2ecaab2348791331..884434e58dda34f2c3f780999c74f8d6a11569d5:/Extension/PackExtension.php diff --git a/Extension/PackExtension.php b/Extension/PackExtension.php index ac0071a..bbf166e 100644 --- a/Extension/PackExtension.php +++ b/Extension/PackExtension.php @@ -18,75 +18,58 @@ use Twig\Extension\AbstractExtension; use Rapsys\PackBundle\Parser\TokenParser; use Rapsys\PackBundle\RapsysPackBundle; +use Rapsys\PackBundle\Util\IntlUtil; use Rapsys\PackBundle\Util\SluggerUtil; /** * {@inheritdoc} */ class PackExtension extends AbstractExtension { - //The config - private $config; - - //The output - private $output; - - //The filter - private $filters; - - //The intl util - protected $intl; - - //The file locator - protected $locator; + /** + * The filters array + */ + protected array $filters; - //The assets package - protected $package; + /** + * The output array + */ + protected array $output; - //The slugger util - protected $slugger; + /** + * The token string + */ + protected string $token; /** * @link https://twig.symfony.com/doc/2.x/advanced.html * * {@inheritdoc} */ - public function __construct(ContainerInterface $container, IntlUtil $intl, FileLocator $locator, PackageInterface $package, SluggerUtil $slugger) { - //Set intl util - $this->intl = $intl; - - //Set file locator - $this->locator = $locator; - - //Set assets packages - $this->package = $package; - - //Set slugger util - $this->slugger = $slugger; - + public function __construct(protected ContainerInterface $container, protected IntlUtil $intl, protected FileLocator $locator, protected PackageInterface $package, protected SluggerUtil $slugger) { //Retrieve bundle config - if ($parameters = $container->getParameter(self::getAlias())) { - //Set config, output and filters arrays - foreach(['config', 'output', 'filters'] as $k) { + if ($parameters = $container->getParameter(RapsysPackBundle::getAlias())) { + //Set filters, output arrays and token string + foreach(['filters', 'output', 'token'] as $k) { $this->$k = $parameters[$k]; } } } /** - * 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 [ - 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->token, 'stylesheet', $this->output['css'], $this->filters['css']), + new TokenParser($this->locator, $this->package, $this->token, 'javascript', $this->output['js'], $this->filters['js']), + new TokenParser($this->locator, $this->package, $this->token, 'image', $this->output['img'], $this->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[] */ @@ -100,14 +83,10 @@ class PackExtension extends AbstractExtension { 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('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 RapsysPackBundle::getAlias(); - } }