/** * Gets the layout. * * @return \Es\Mvc\ViewModelInterface The layout */ public function getLayout() { if (!$this->layout) { $layout = new ViewModel(); $layout->setTemplate('layout/layout'); $this->layout = $layout; } return $this->layout; }
/** * Renders a template fragment using its own template engine, its own * variable scope and (optional) its own module. * * @param string $template The name of template * @param array $values Optional; the variables to populate in the view * @param null|string $module Optional; the module namespace * * @return string The result of rendering */ public function __invoke($template, array $values = [], $module = null) { $model = new ViewModel($values); $model->setTemplate($template); if (!empty($module)) { $model->setModule($module); } $events = $this->getEvents(); $event = new ViewEvent($model); $events->trigger($event); return $event->getResult(); }
public function testGetTemplate() { $model = new ViewModel(); $model->setTemplate('foo'); $this->assertSame('foo', $model->getTemplate()); }
public function testRenderMergesAndSetsVariablesUsingViewModelVariables() { $file = $this->files . 'local_variables.phtml'; $template = 'foo/foo'; $modelVariables = ['foo' => 'foo']; $directVariables = ['bar' => 'bar']; $model = new ViewModel($modelVariables); $model->setTemplate($template); $renderer = new Renderer(); $resolver = $this->getMock(Resolver::CLASS); $renderer->setResolver($resolver); $resolver->expects($this->once())->method('resolve')->with($this->identicalTo($template))->will($this->returnValue($file)); $this->assertSame('foobar', $renderer->render($model, $directVariables)); }