public function testSecondFilterOverwritesFirst() { $var = new Variable('var | money '); $this->context->set('var', 1000); $this->context->addFilters(new MoneyFilter(), 'money'); $this->context->addFilters(new CanadianMoneyFilter(), 'money'); $this->assertEquals(' 1000$ CAD ', $var->render($this->context)); }
/** * Renders the current template * * @param array $assigns an array of values for the template * @param array $filters additional filters for the template * @param array $registers additional registers for the template * * @return string */ public function render(array $assigns = array(), $filters = null, array $registers = array()) { $context = new Context($assigns, $registers); if (!is_null($filters)) { if (is_array($filters)) { $this->filters = array_merge($this->filters, $filters); } else { $this->filters[] = $filters; } } foreach ($this->filters as $filter) { $context->addFilters($filter); } return $this->root->render($context); }
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?')); }