* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bridge\Twig\Extension; use Symfony\Component\Security\Http\Logout\LogoutUrlGenerator; use Twig\Extension\AbstractExtension; use Twig\TwigFunction; /** * LogoutUrlHelper provides generator functions for the logout URL to Twig. * * @author Jeremy Mikola */ final class LogoutUrlExtension extends AbstractExtension { private $generator; public function __construct(LogoutUrlGenerator $generator) { $this->generator = $generator; } /** * {@inheritdoc} */ public function getFunctions(): array { return [ new TwigFunction('logout_url', [$this, 'getLogoutUrl']), new TwigFunction('logout_path', [$this, 'getLogoutPath']), ]; } /** * Generates the relative logout URL for the firewall. * * @param string|null $key The firewall key or null to use the current firewall key */ public function getLogoutPath(string $key = null): string { return $this->generator->getLogoutPath($key); } /** * Generates the absolute logout URL for the firewall. * * @param string|null $key The firewall key or null to use the current firewall key */ public function getLogoutUrl(string $key = null): string { return $this->generator->getLogoutUrl($key); } }