From: Raphaƫl Gertz <git@rapsys.eu>
Date: Tue, 7 Sep 2021 02:13:38 +0000 (+0200)
Subject: Add twig intl date, number and currency filters
X-Git-Tag: 0.2.0~16
X-Git-Url: https://git.rapsys.eu/packbundle/commitdiff_plain/b4279c702b5ec4553538e19b2ecaab2348791331

Add twig intl date, number and currency filters
Cleanup
---

diff --git a/Extension/PackExtension.php b/Extension/PackExtension.php
index 40863e9..ac0071a 100644
--- a/Extension/PackExtension.php
+++ b/Extension/PackExtension.php
@@ -33,30 +33,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 +92,15 @@ 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'])
 		];
 	}