Add twig extension to handle instanceof from inside twig.
This commit is contained in:
parent
0a88fdeddb
commit
34a7f8e5a6
2 changed files with 33 additions and 0 deletions
|
|
@ -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));
|
||||
|
|
|
|||
30
src/Twig/Extensions/InstanceOfExtension.php
Normal file
30
src/Twig/Extensions/InstanceOfExtension.php
Normal 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';
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue