- Access to public properties and array is allowed
- Methods have to be whitelisted
/** * @test */ public function chainedCallsArePossibleWithExplicitContextWrapping() { $context = new ProtectedContext(['q' => function ($value) { $context = new ProtectedContext(['count' => function () use($value) { return count($value); }]); $context->whitelist('*'); return $context; }, 'value' => ['Foo', 'Bar']]); $context->whitelist('q'); $evaluator = new CompilingEvaluator(); $result = $evaluator->evaluate('q(value).count()', $context); $this->assertEquals(2, $result); }