murph-core/src/core/Twig/Extension/AbTestExtension.php
2022-05-20 13:50:04 +02:00

49 lines
1.1 KiB
PHP

<?php
namespace App\Core\Twig\Extension;
use App\Core\Ab\AbContainer;
use App\Core\Ab\AbTest;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class AbTestExtension extends AbstractExtension
{
protected AbContainer $container;
public function __construct(AbContainer $container)
{
$this->container = $container;
}
public function getFunctions(): array
{
return [
new TwigFunction('ab_test_exists', [$this, 'exists']),
new TwigFunction('ab_test', [$this, 'get']),
new TwigFunction('ab_test_result', [$this, 'result']),
new TwigFunction('ab_test_value', [$this, 'value']),
];
}
public function exists(string $name): bool
{
return $this->container->has($name);
}
public function get(string $name): AbTest
{
return $this->container->get($name);
}
public function result(string $name): string
{
return $this->get($name)->getResult();
}
public function value(string $name)
{
return $this->get($name)->getResultValue();
}
}