// ...
$controller = new $controller_name();
$result = $controller->run();
if (is_object($result))
{
if ($result instanceof Base_View) // Это вид
{
// ....
$result->run(); // формируем HTML
$this->response->sendHeaders(); // отсылаем HTTP-заголовки
echo $result->getOut(); // выводим HTML
}
else if ($result instanceof Redirect_Redirect) // это объект редиректа
{
$result->run(); // формируем URL для редиректа и др.
$this->response->setHeader('Location', $result->getRedirectUrl()); // устанавливаем заголовок
$this->response->sendHeaders(); // отсылаем заголовки
}
}
else // тут фатальная ошибка
{
throw new Exception('нет результата');
}