diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-26 12:23:47 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-29 23:46:31 +0200 |
commit | df6360044b5c2396b2bee0dfa9e8d744bfa424d5 (patch) | |
tree | 177b81f1feca7b1b77b4cd20d006bc1820baba12 /src/Renderer/Twig/Extensions/Url.php | |
parent | bb3d16d273bb3e4552e4869dd22cb2c2d81f5387 (diff) |
Added Twig template functions
Diffstat (limited to 'src/Renderer/Twig/Extensions/Url.php')
-rw-r--r-- | src/Renderer/Twig/Extensions/Url.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/Renderer/Twig/Extensions/Url.php b/src/Renderer/Twig/Extensions/Url.php new file mode 100644 index 00000000..62e59782 --- /dev/null +++ b/src/Renderer/Twig/Extensions/Url.php @@ -0,0 +1,43 @@ +<?php + +namespace Engelsystem\Renderer\Twig\Extensions; + +use Engelsystem\Http\UrlGenerator; +use Twig_Extension as TwigExtension; +use Twig_Function as TwigFunction; + +class Url extends TwigExtension +{ + /** @var UrlGenerator */ + protected $urlGenerator; + + /** + * @param UrlGenerator $urlGenerator + */ + public function __construct(UrlGenerator $urlGenerator) + { + $this->urlGenerator = $urlGenerator; + } + + /** + * @return TwigFunction[] + */ + public function getFunctions() + { + return [ + new TwigFunction('url', [$this, 'getUrl']), + ]; + } + + /** + * @param string $path + * @param array $parameters + * @return UrlGenerator|string + */ + public function getUrl($path, $parameters = []) + { + $path = str_replace('_', '-', $path); + + return $this->urlGenerator->to($path, $parameters); + } +} |