Поток событий: шаблон PHP MVC

Я кодирую фреймворк PHP MVC. Теперь, когда я начал кодирование, я обнаружил, что я потерял то, что должна реализовать реализация: Index.php router.php registry et al. Я теряюсь, где должен загружаться базовый контроллер и Model et al. Есть ли диаграмма, показывающая поток MVC применительно к PHP? Не общий шаблон MVC, но PHP? Я прочитал много учебников и, скажем, они не используют ту же технику!

Предупреждение : этот ответ устарел и основан на «понимании», которое у меня было около 6 лет назад. Я попытаюсь обновить в обозримом будущем.

Нет единого «правильного пути», у которого есть много неправильных.

Я могу объяснить только мои субъективные взгляды на вещи. Вот порядок:

  • index.php
    • устанавливает константы окружения
    • загружает bootstrap.php
  • bootstrap.php (существует за пределами document_root)
    • регистрирует автозагрузчик
    • загружает конфигурацию router
    • маршрутизатор собирает входящие данные из пути
    • создает model factory
    • создает controller , определяемый данными с маршрутизатора
      • требуется фабрика модели в конструкторе
    • создает view , определяемое контроллером (есть соотношение 1: 1 для V и C)
    • выполняет действие над контроллером, определяемое данными с маршрутизатора
      • использует модельную фабрику для создания новых models
      • привязывает модели к просмотру
      • изменяет состояние моделей
      • изменение состояния зрения
    • просмотр делает страницы
      • запрашивает данные из связанных моделей
      • определяет, какие templates использовать

Это более или менее соответствует так называемой структуре Model2 или Web MVC.

Модели отвечают за бизнес-логику, рассматривают сделки с презентационной логикой, а контроллер связывает их вместе и изменяет состояние в соответствии с входящими параметрами.

введите описание изображения здесь