Когда нужно создать контроллер в Symfony?

Правильно ли в MVC создавать на каждую страницу свой контроллер ?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
Контроллер лишь описывает действия над тем, что вам нужно. И получает данные от моделей посредством запросов через getPropertyObject и устанавливает их, если вы создаете что-то новое. setPropertyObject. Сама обработка правильности данных происходит в моделях, как и описание методов геттеров и сеттеров. Так же в других фреймворках есть сценарии, AcessControl - контроль доступа.

Пример модель User: какой контроллер должен быть у нее?
index - что будет, если человек зайдет на страницу профиля по адресу site.com/user/index/{id нужного юзера}
registration - как создается новые юзер, описывается внутри него форма.
Login - как пользователь авторизируется, не путайте с аутентификацией.
Logout - как юзер выходит из системы
update - как юзер изменяет свой профиль
delete - что происходит если юзер удаляется.

Суть происходящего: Я постараюсь очень тривиально, но надеюсь вы перечитаете принцип MVC. Заходит человек на сайт по адресу например site.com/user/registration
Срабатывает ваш контролле User, затем идет экшен(действие внутри контроллера) registration Внутри этого экшена, есть две вариации "страницы", когда юзер не залогинен, мы показываем форму, когда юзер залогинен, доступа к функции регистрации не должно быть. В случае с формой, контроллер генерирует вид форму и ждет заполнения от пользователя. Кликая по кнопке Submit вызывается валидация(сам вызов метода прописан в контроллере, а то что именно это тметод делает написано в модели). Создается экземпляр класса User и наполняется данными из формы, валидируется, если валидация успешна. он сохраняет в базу и генерирует вид(страницу) об успешности.

Что касается ваших "страниц" как видите на один экшн, может быть много страниц и разных вариаций и они не зависят от контроллеров. Чаще всего, конечно по одному виду на каждый экшн, но бывают исключения.

Рекомендую к просмотру:
Тут самописный MVC, но он очень простой и описывает основную идею этой концепции, после просмотра, вы самостоятельно сможете написать свой MVC, но не стоит этого делать. Костылей в интернете хватает. Просто ознакомьтесь и проясните для себя некотоыре моменты.
Часть 1
Часть 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DP-Studio
20 лет веб-разработки
На каждую модель. При чем тут страницы? Ну плюс бывают еще сервис-контроллеры (например обработки коллеций изображений и т.д.)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы