За последние 24 часа нас посетил 16881 программист и 1641 робот. Сейчас ищут 905 программистов ...

Как правильно реализовать MVC

Тема в разделе "PHP для новичков", создана пользователем [code], 24 окт 2014.

  1. [code]

    [code] Новичок

    С нами с:
    14 июл 2014
    Сообщения:
    32
    Симпатии:
    0
    Добрый вечер! Недавно начал писать небольшой проект ради практики на основе MVC и тут возник вопрос: что писать в контроллер, а что в модель?
    Естественно вся работа с БД у меня в моделях. В контроллере правильно писать только обработку пользовательских запросов при помощи моделей и передавать ее во View?
    И, например, у меня такой вид:
    site.ru/controller/action/
    А в controller3 и controller5, например, очень схож код для action2. Я полагаю, что нужно куда - то вынести этот код, чтобы он не дублировался при описании данного экшена в контроллерах, т.е. либо в модель, но не очень представляю нормальную реализацию этого подхода, либо в родительский класс для контроллеров, но что, если метод с таким названием (action2 в моем примере) в родительском классе уже занят? Делать условия?
    Надеюсь, доступно объяснил)
     
  2. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Ты читал вообще, что такое " MVC " ?
    Не понимаю, что значит занят? Выполняется или всм, то, что он уже определен? Если, то, что определен мол - то переопредели, прочитай про перегрузку методов.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет никакого правильного MVC. Это совет. Абстракция. Если кратко - логика, желательно, не должна быть макаронно перемешана с представлением. Если доходчиво - надо строить архитектуру так, чтобы перепиливание представления никак не сказывалось на логике работы.

    Это ваше MVC вообще можно реализовать в одном классе, в котором будет и контроллер и вьюха и обработчик модели, и все они будут независимы друг от друга.

    А можно вообще реализовать внутри одной-единственной процедуры, последовательно отрабатывающей секции кода, которые только визуально, для кодера, разделены пустыми строками. Сначала 5 строк на модель, потом 20 строк на работу контроллера и, потом 10 строк на генерацию вьюхи. И это тоже, в своем масштабе, будет MVC.

    Абстрагируйтесь. Вы проектируете архитектуру, а не архитектура выворачивает вам руки.

    MVC не дает прибавку к скорости кода, росту продаж, длине половых органов и уровню доходов. MVC лишь упрощает дальнейшее сопровождение кода и дает бонус на +5 к гибкости. Делайте, как вам удобно, только и всего. Главное, чтобы это было сделано разумно.
     
  4. VaneS

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

    С нами с:
    16 ноя 2011
    Сообщения:
    636
    Симпатии:
    4
    Адрес:
    Россия
    [​IMG]
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ...даже без классов...
     
  6. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Обычно реализуется в базовых классах сущности. И в контроллерах просто создаёте объекты с нужными параметрами. Либо храните в толстой модели.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чукча не читаель
    чукча - писатель