/** * Renders the variable with the data in the context * * @param Context $context * * @return mixed|string */ public function render(Context $context) { $output = $context->get($this->name); foreach ($this->filters as $filter) { list($filtername, $filterArgKeys) = $filter; $filterArgValues = array(); foreach ($filterArgKeys as $arg_key) { $filterArgValues[] = $context->get($arg_key); } $output = $context->invoke($filtername, $output, $filterArgValues); } return $output; }
public function testAddFilter() { $context = new Context(); $context->addFilters(new HiFilter()); $this->assertEquals('hi? hi!', $context->invoke('hi', 'hi?')); $context = new Context(); $this->assertEquals('hi?', $context->invoke('hi', 'hi?')); $context->addFilters(new HiFilter()); $this->assertEquals('hi? hi!', $context->invoke('hi', 'hi?')); }