private function addParameterMapping(ExpressionCompiler $compiler) { $name = $compiler->nextName(); $indexName = $compiler->nextName(); $paramName = $compiler->nextName(); $compiler->setAttribute('parameter_mapping_name', $name)->writeln("\${$name} = array();")->write("foreach (")->compileInternal(new VariableExpression('object'))->writeln("->reflection->getParameters() as \${$indexName} => \${$paramName}) {")->indent()->writeln("\${$name}[\${$paramName}->name] = \${$indexName};")->outdent()->writeln("}\n"); }
public function testComplexExpression() { $expression = 'requests[0].attributes.get(name, "default")'; $evaluator = eval($this->compiler->compileExpression(new Expression($expression))); $context = array('requests' => array(new Request()), 'name' => 'Adrien'); $expected = array('Adrien', 'default'); $this->assertEquals($expected, $evaluator($context)); }
public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr) { if ('permitAll' === $expr->name) { $compiler->write('true'); return; } if ('denyAll' === $expr->name) { $compiler->write('false'); return; } if ($expr->allowNull) { $compiler->write("(isset(\$context['{$expr->name}']) ? "); } $compiler->write("\$context['{$expr->name}']"); if ($expr->allowNull) { $compiler->write(" : null)"); } }
public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr) { $compiler->write('!(')->compileInternal($expr->expr)->write(')'); }
public function compile(ExpressionCompiler $compiler, ExpressionInterface $expr) { $compiler->write("(")->compileInternal($expr->left)->write(") " . $this->getOperator() . " (")->compileInternal($expr->right)->write(")"); }
protected function setUp() { $this->compiler = new ExpressionCompiler(); $this->compiler->addTypeCompiler(new ParameterExpressionCompiler()); }