public function render($name, array $parameters = [])
{
$event = new ViewEvent('render', $name);
$event->setParameters(array_replace($this->globals, end($this->parameters) ?: [], $parameters));
$this->events->trigger($event, [$this]);
if (!$event->isPropagationStopped()) {
$name = preg_replace('/\\.php$/i', '', $name);
$this->events->trigger($event->setName($name), [$this]);
}
$result = $event->getResult();
$params = $this->parameters[] = $event->getParameters();
if ($result === null && $this->engine->supports($event->getTemplate())) {
$result = $this->engine->render($event->getTemplate(), $params);
}
array_pop($this->parameters);
return $result;
}