class MatchesBinary
Hierarchy
- class \Twig\Node\Node implements \Twig\Node\Countable, \Twig\Node\IteratorAggregate
- class \Twig\Node\Expression\AbstractExpression extends \Twig\Node\Node
- class \Twig\Node\Expression\Binary\AbstractBinary extends \Twig\Node\Expression\AbstractExpression
- class \Twig\Node\Expression\Binary\MatchesBinary extends \Twig\Node\Expression\Binary\AbstractBinary
- class \Twig\Node\Expression\Binary\AbstractBinary extends \Twig\Node\Expression\AbstractExpression
- class \Twig\Node\Expression\AbstractExpression extends \Twig\Node\Node
Expanded class hierarchy of MatchesBinary
1 file declares its use of MatchesBinary
- CoreExtension.php in vendor/
twig/ twig/ src/ Extension/ CoreExtension.php
File
-
vendor/
twig/ twig/ src/ Node/ Expression/ Binary/ MatchesBinary.php, line 19
Namespace
Twig\Node\Expression\BinaryView source
class MatchesBinary extends AbstractBinary {
public function __construct(Node $left, Node $right, int $lineno) {
if ($right instanceof ConstantExpression) {
$regexp = $right->getAttribute('value');
set_error_handler(static fn($t, $m) => throw new SyntaxError(\sprintf('Regexp "%s" passed to "matches" is not valid: %s.', $regexp, substr($m, 14)), $lineno));
try {
preg_match($regexp, '');
} finally {
restore_error_handler();
}
}
parent::__construct($left, $right, $lineno);
}
public function compile(Compiler $compiler) : void {
$compiler->raw('CoreExtension::matches(')
->subcompile($this->getNode('right'))
->raw(', ')
->subcompile($this->getNode('left'))
->raw(')');
}
public function operator(Compiler $compiler) : Compiler {
return $compiler->raw('');
}
}