X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/44ea2f60a6d17b6c9475a6e87a1f520200c7d036..3394cba3fdb5d6608d405320101eeba0efb4763c:/Extension/PackExtension.php?ds=sidebyside diff --git a/Extension/PackExtension.php b/Extension/PackExtension.php index 40863e9..d32f5bf 100644 --- a/Extension/PackExtension.php +++ b/Extension/PackExtension.php @@ -18,6 +18,7 @@ use Twig\Extension\AbstractExtension; use Rapsys\PackBundle\Parser\TokenParser; use Rapsys\PackBundle\RapsysPackBundle; +use Rapsys\PackBundle\Util\IntlUtil; use Rapsys\PackBundle\Util\SluggerUtil; /** @@ -33,30 +34,36 @@ class PackExtension extends AbstractExtension { //The filter private $filters; + //The intl util + protected $intl; + //The file locator protected $locator; - //The slugger instance - protected $slugger; - //The assets package protected $package; + //The slugger util + protected $slugger; + /** * @link https://twig.symfony.com/doc/2.x/advanced.html * * {@inheritdoc} */ - public function __construct(FileLocator $locator, ContainerInterface $container, PackageInterface $package, SluggerUtil $slugger) { + 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 slugger - $this->slugger = $slugger; - //Set assets packages $this->package = $package; + //Set slugger util + $this->slugger = $slugger; + //Retrieve bundle config if ($parameters = $container->getParameter(self::getAlias())) { //Set config, output and filters arrays @@ -86,9 +93,18 @@ class PackExtension extends AbstractExtension { */ 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('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') ]; }