Что и почему именно у вас не работает, глубоко не разбирался.
Но сразу бросилось в глаза:
abstract class Controller implements ControllerInterface
{
protected $view;
public function __construct($layout = "main"){
$this->view = new View();
$this->view->setLayout($layout);
}
...
}
class View implements ViewInterface
{
...
public function setLayout()
{
...
interface ViewInterface
{
public function setLayout($layout);
}
Вообще у вас там очень много косяков. Я бы советовал попробовать поковырять современные микрофреймворки.
Если же хотите продолжать свой велосипед. то начните с ознакомления с
PSR и возьмите композер.