MVC, пользовательский фреймворк: где размещать контроллеры/действия

в моей структуре это выглядит так:

design
modules
  /links
  /files
    index.php -> view
    addNewItem.php -> action
    deleteItem.php -> action

в этой парадигме все контроллеры находятся в одном файле, я думаю, что это имеет лучший обзор. Но я видел другие решения, чтобы поместить все действия на один контроллер, а файлы стали методами. Это нормально, но в итоге мы могли получить большой файл. Какой метод предпочтительнее, как вы думаете?


person user893856    schedule 29.10.2011    source источник


Ответы (1)


Используя шаблон MVC, вам нужно разделить текущий код между несколькими контроллерами, тогда у каждого контроллера будет несколько действий, поэтому у вас будет несколько контроллеров, а не один, каждый с несколькими действиями.

Скажем, например, у вас есть область пользователей на вашем сайте. Вы можете сделать так, чтобы контроллер Users имел действия регистрации, просмотра профиля и редактирования профиля, и все. Вам также понадобится еще один контроллер для аутентификации (вход в систему и выход из системы) и так далее, чтобы разбить ваш код на части.

Затем, используя шаблон MVC, вам также нужно будет написать модели для каждого «сущности БД», например модель пользователей, которая определяет пользователя, и если вы пойдете немного дальше, вы можете иметь сопоставитель таблицы пользователей (или репозиторий), который реализует все запросы к базе данных для основных CRUD (и даже больше действий) для пользователей.

Для лучшего понимания я предлагаю вам загрузить структуру MVC, уже созданную для php, что-то простое, что лучше объяснит концепцию MVC и преимущества по сравнению с так называемым «классическим» или «обычным» php.

Я предлагаю вам попробовать фреймворк CodeIgniter, поскольку документация действительно хороша для начала работы с MVC, или если вы хотите перейти действительно углубиться в тему и познакомиться с MVC, а лучше изучить Zend Framework Quick Начните обзор, который должен показать более глубокое представление о том, что должна содержать архитектура инфраструктуры MVC и как ее следует использовать.

person Poelinca Dorin    schedule 29.10.2011