X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/0d6adabf6050f4496f683fab894e0da5ac42d57b..96fd400cf3fce1bdca1a9df772d6e07096af545a:/Extension/PackExtension.php diff --git a/Extension/PackExtension.php b/Extension/PackExtension.php index 118de0c..697f469 100644 --- a/Extension/PackExtension.php +++ b/Extension/PackExtension.php @@ -16,48 +16,38 @@ use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpKernel\Config\FileLocator; use Twig\Extension\AbstractExtension; -use Rapsys\PackBundle\Util\SluggerUtil; 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 file locator - protected $locator; + /** + * The config array + */ + protected array $config; - //The slugger instance - protected $slugger; + /** + * The output array + */ + protected array $output; - //The assets package - protected $package; + /** + * The filter array + */ + protected array $filters; /** * @link https://twig.symfony.com/doc/2.x/advanced.html * * {@inheritdoc} */ - 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; - + 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($this->getAlias())) { + if ($parameters = $container->getParameter(self::getAlias())) { //Set config, output and filters arrays foreach(['config', 'output', 'filters'] as $k) { $this->$k = $parameters[$k]; @@ -85,9 +75,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') ]; } @@ -95,6 +94,6 @@ class PackExtension extends AbstractExtension { * {@inheritdoc} */ public function getAlias(): string { - return 'rapsys_pack'; + return RapsysPackBundle::getAlias(); } }