public function compile(ExpressCompiler $compiler, $flags = 0) { try { $compiler->setExtends($this->extends); foreach ($this->childNodes as $node) { $node->compile($compiler); } } catch (ExpressViewException $e) { throw $e; } catch (\Exception $e) { if ($this->extends === NULL) { throw new ExpressViewException(sprintf('Unable to compile express view'), '', $this->line, $e); } $extends = ''; foreach ($this->extends as $node) { if ($node instanceof ExpressionNode) { $extends .= $node->getExpression(); } elseif ($node instanceof TextNode) { $extends .= $node->getText(); } } throw new ExpressViewException(sprintf('Unable to compile express composition extending "%s"', $extends), $compiler->getResource(), $this->line, $e); } }