Взаимодействие с MVC

Здравствуйте.
Потихоньку вроде бы начал понимать ООП… вот только есть один момент который я не очень пока понимаю и очень надеюсь на Вашу помощь.

Есть три файла назовем их так Model.php, Controller.php и View.php и каждый файл лежит в соответствующих папках Model, Controller ну и View

В модели у нас пускай будет идти вызов и БД

Model.php

<?php
namespace Model;

use Config\Connect;

class Mоdel extends Connect
{
  public function read()
  {
    $news = self::db()->prepare("SELECT * FROM news"); 
    $news->execute([]);
    $news->fetchAll();
  }
}

Controller.php

<?php
namespace Controller;

use Model\Model;

class Controller
{
  foreach(new Model->read() as $k => $v)
  {
    // Выводим новости и с помощью include выводим их на страницу
    ...
    include "View/View.php";
  }
}

View.php

<div>
  <!-- Тут выводим новости -->
</div>

Первый вопрос на сколько правильно я это сделал и второй вопрос как при нажатии на кнопку в View передать данные в модель и получить результат и всё это желательно методом POST?

как и всегда? Форма или ajax. В контроллере обрабатывать запрос.

А “правильно” и “неправильно” тут не особо существуют. Ничто не истинно, всё дозволено )
Для начала надо смотреть решена ли задача, работает ли всё так, как надо.
Потом можно попробовать подумать есть ли какие-то проблемы у решения, можно ли что-то улучшить и их решить, не будет ли очевидных сложностей в ближайшем будущем развития проекта.
Но при этом желательно не стать архитектурным астронавтом )
Или бывает люди следуя карго-культу обкладывают каждый шаг паттернами и фабриками фабрик, делают 100500 юнит-тестов с моками, а оказывается это только добавляет проблем и лучше было делать всё проще.

Обычно не делают new Model и т.п. прямо внутри функции, а передают параметром в конструктор, чтоб можно было легко заменить (например, для автоматических тестов).

И еще тут вывод новостей странный. Так не получится вывести что-то еще вокруг новостей, какие-то общие элементы страницы, <head>, <body>, …, или вся эта логика про вывод HTML будет в контролере, который по идее не об этом. Обычно в контролере загружают один вью передав ему все данные, и он выводит всё, другие вью каких-то элементов и т.п.
Для удобства можно взять какой-нибудь более продвинутый шаблонизатор страниц для РНР вместо самого РНР.

Тут кажется я понял как реализовать.

Код который я привел выше это написано для примера head и body писать не стал для упрощения.

За направление спасибо вроде не много прозрел

Здравствуйте.
Вчера не много в тупик опять зашел и вот с чем:

пишу класс по типу такого

class Test
{
 public function __construct()
 {
   // тут какой то код
  }
  public static function tester()
  {
     // тут какой то код
   }
}

вызываю все это дело на странице

$test = Test::tester();

Все что находится в методе tester вызвалось, а вот __construct нет и если я для __construct пропишу static то мне выдаст ошибку. Вопрос как мне вызвать __construct используя static у метода или же лучше переписать все без static

$test = (new Test)->tester();

А для чего это, что в коде?

Именно что?

Ну что код конструктора и функции делает.

А я в данный момент пока что не чего не пишу … просто разбираюсь как и что работает ну и тренируюсь за одно.