예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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();
 }
예제 #3
0
 public function testGetTemplate()
 {
     $model = new ViewModel();
     $model->setTemplate('foo');
     $this->assertSame('foo', $model->getTemplate());
 }
예제 #4
0
 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));
 }