Вопрос: Как сделать простенькую MVC модель в php?

Лучший ответ: Итак, займемся переводом для началана главной создаю объект:
В точке входа/во фронт контроллере. Объект этот завется маршрутизатор или раутер. Имеет отношение к MVC - нет.вот что в файле hello.class.php:
Такое именование файлов и классов было модным во времена php4. Отройте для себя PSR0 (и еще отдельно про PSR-4 можете почитать).Т.е. при обращении по url: site.localhost/hello я вижу hello!!!! на экране. 
Поздравляю вас с первым контроллером... хоть и убогим слегка. Читаем про контроллеры в контексте GRASPну в htaccess я прописал нужную конструкцию
Верни мне мой 2007-ой, когда все было круто и все хвастались своими ЧПУ на модреврайтах. Подумайте в сторону единой точки входа и перенаправления всех запросов, для которых не нашлось файлов на эту точку входа. Но это так... просто... совет. Это упростит жизнь при миграции скажем на nginx или черокки какой.Вот я и поплыл в этих терминах. 
Заходим на википедию и выплываем.Model-view-controller - схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные. 
Советую почитать полную статью и пройтись по ссылкам. Особенно по части модели данных. Это должно прояснить для вас такой момент что модель это модель данных. То есть у вас есть данные, например блог-пост, есть его модель (просто класс Post который имеет поля id, title, body и т.д.). Проще говоря модель это представления данных в приложении. А view - это слой который занимается тем что переводит данные из формата модели в формат запрашиваемый пользователем. Причем вам не запрещается работать из контроллера с базой. Ну то есть как, есть такие вещи как сервисный слой и тонкие контроллеры, но мы же пока только учимся да?). В любом случае модель не должна знать ничего о том где и как она хранится.
Теперь по поводу view. Давайте вспомним что такое запрос в контексте WEB-приложений. Это старый добрый HTTP запрос. У запроса есть заголовок - Accept который говорит что хочет получить пользователь (пользователи могут быть не живыми и хотеть что-то другое, например JSON). Через него браузер говорит что хочет получить. Например он говорит "хочу  text/html" и мы должны выполнить следующие стэпы:
 - вызвать контроллер
 - контроллер достает из закрамов модельки которые хочет пользователь и отдает их во view.
 - view переводит данные из формата приложения в формат который хочет увидеть пользователь.
В очень грубой форме view может быть таким:PostView {
    
    private $post;    

    public function __construct(Post $post) {
        $this->post = $post;
    }

    public function renderTitle() {
         return sprintf("<h1>%s</h1>", $this->post->getTitle());
    }
    // и еще пара методов    
    public function render() {
         $this->renderTitle();
         $this->renderBody();
    }
}
И по одному таком классу на каждую модель и в каждом классе придется реализовывать сложную логику по формированию вьюшек для наших моделей. Согласитесь, это не удобно. Потому придумали фигачить все в шаблонах и разруливать это движками для шаблонизации (да, одна единственная функция render которая просто инклудит php файл это тоже движек шаблонов).
Практическое задание:
Если все что делает контроллер это отдает отрендренный шаблон без какой либо переменной в нем.... Это MVC? Где тут модель?

Худший ответ: Мне в своё время вот эта статья понравилась
habrahabr.ru/post/150267