vaflya
@vaflya
Ничего личного, это всего лишь хобби.

Php и MVC, как правильно реализовать многораздельный сайт?

Всем привет!

Начал изучать совместно ООП и MVC. И появился вопрос. К примеру на сайте 4 раздела
-статьи
-картинки
-каталог
-видео

У каждого раздела может быть несколько actions (к прим. Отобразить все статьи или одну статью).

Соответственно вопрос:

Дерево папок:
App
|__core
|__controllers
     |__controller_main.php
     |__Controller_articles.php
     |__Controller_images.php
     |__ и т.д
|__models
     |__main
         |__Index.php
     |__Articles
         |__ index.php
         |__Show_one.php
         |__show_top.php
|__views
     |__main
         |__Index.php
     |__Articles
         |__ index.php
         |__Show_one.php
         |__show_top.php

Вобщем взависимости от action, контроллер будет подбирать нужную модель и нужный вид. Меня беспокоит, что я вроде как буду дублировать код и нарушать концепцию mvc. Подскажите как правильно реализоыать или поверните в нужную сторону.

P.s. Пример упрощенный, разделов планируется около 20 на сайте и каждый раздел как мини сайт.
  • Вопрос задан
  • 686 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Тоесть создать 1 только модель для раздела и в ней создать много методов?

Возможно вы не очень понимаете суть моделей, как и мвц в целом. Модель - это отдельная сущность, например пользователь, запись блога, товар етц. Контроллер манипулирует методами моделей для создания набора данных, которые потом передает в представление. По этому количество контроллеров никак не коррелирует с количеством моделей, в одном контроллере может вызываться / создаваться много моделей (например всегда создается текущий пользователь). Отдельным классом стоят коллекции - объект групп, которые часто используют для создания разных списков и наборов объектов одного типа (например список пользователей или товаров).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Dit81
@Dit81
Security researcher, pentester, internet-marketer
Под каждый объект своя модель. Посмотрите на реализацию ORM
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы