Add twig extension to handle instanceof from inside twig.

This commit is contained in:
Greyscale 2020-08-27 03:34:52 +02:00
parent 0a88fdeddb
commit 34a7f8e5a6
2 changed files with 33 additions and 0 deletions

View file

@ -173,6 +173,9 @@ class App
// Add Twig extension to integrate Kint
$twig->addExtension(new \Kint\Twig\TwigExtension());
// Add Twig extension to check if something is an instance of a known class or entity
$twig->addExtension(new Extensions\InstanceOfExtension());
// Add Twig Translate from symfony/twig-bridge
$selectedLanguage = $sessionService->has('Language') ? $sessionService->get('Language') : 'en_US';
$twig->addExtension(new SymfonyTwigExtensions\TranslationExtension($translator));

View file

@ -0,0 +1,30 @@
<?php
namespace Benzine\Twig\Extensions;
use Twig\Extension\AbstractExtension;
use Twig\TwigTest;
class InstanceOfExtension extends AbstractExtension
{
public function getTests()
{
return [
new TwigTest('instanceof', [$this, 'isInstanceOf']),
];
}
public function isInstanceOf($var, $instance)
{
if (is_object($var) && $var instanceof $instance) {
return true;
}
return false;
}
public function getName()
{
return 'instanceof_extension';
}
}