За последние 24 часа нас посетили 38504 программиста и 1284 робота. Сейчас ищут 1055 программистов ...

Вопрос про MVC

Тема в разделе "PHP для новичков", создана пользователем machetero, 15 ноя 2015.

  1. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Я правильно понимаю суть контроллера ? Он должен обработать то, что пришло в запросе (из $_GET, $_POST, или $_REQUEST) или обработать $_SERVER['REQUEST_URI'] если у нас ЧПУ. Дальше подгрузить соответствующую логику(передав ей какие-либо данные из запроса, если необходимо), она же модель. И после контроллер должен подгрузить соответствующий шаблон, передав в него то что сгеннерировала модель.
    Могут ли шаблоны обращаться к методам модели напрямую ?
    Нормально ли хранить объекты моделей и видов в свойствах класса/объекта контроллера ?
    И ещё, если у меня например есть логика(к примеру регистрации и аутентификации/авторизации) которая не генерирует данных на вывод, она тоже называется слоем модели ?
     
  2. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    В контроллере принимается решение, на действие пользователя. А работать с суперглобальными переменными(из $_GET, $_POST, или $_REQUEST) лучше в отдельном классе к примеру назвать его Request
    Получил данные, от пользователя, решается какие данные надо вытаскивать, какую страницу надо показывать.
    Лучше это дело переложить на класс который занимается работой с базой.
    Да, нормально.

    Добавлено спустя 4 минуты 32 секунды:
    Вообще контроллеров тоже много FrontCOntroller PageController ApplicationController
     
  3. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    mahmuzar, спасибо за отклик !
    А класс который занимается работой с базой(какойнить DbDriver) это не часть модели ?
     
  4. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    К примеру есть у тебя страница контакты создай класс ContactManager и там уже работаешь с базой. А вот коннект к бд и остальная работа уже в другом классе

    Добавлено спустя 39 секунд:
    Создаешь объект ContactManager в контроллере страницы получаешь данные из базы
    обрабатываешь и передаешь представлению

    Добавлено спустя 2 минуты 8 секунд:
    machetero, думаю лучший вариант посмотреть как это дело сделано в других фреймворках. К примеру Symfony/
     
  5. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Благодарю, в принципе я так это и представлял себе.
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
  7. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    VLK, спасибо. Прочитал всю тему. Почти всё в голове встало на свои места.
     
  8. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    уже не первый раз замечаю твою отсылку к этому посту.
    ты его в закладках держишь?
     
  9. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Нет, каждый раз ищу, благо не так часто это нужно.

    Я помню тоже не мог въехать как это устроено, смотрел всякие видео, читал статьи, но толку ноль, везде какие то заумные слова - догма, парадигма, паттерн, концепция и т.д., потом с горем пополам, с помощью обитателей этого форума я более менее понял что к чему.
    Потом в одной из тем увидел вопрос по этому поводу, подумал как бы объяснить так, что бы было понятно, расписал, потратил на это время и мыслительную силу, так что теперь даю ссылку.