За последние 24 часа нас посетили 22430 программистов и 1016 роботов. Сейчас ищут 715 программистов ...

Про MVC.

Тема в разделе "PHP для новичков", создана пользователем AlexandrS, 3 дек 2018.

Метки:
  1. AlexandrS

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

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    У меня единая точка входа и в строке браузера я передаю путь(запрос), который в классе routes формирует более понятное для приложение обращение т.е. создает контроллер и экшен, и всё это дело передается в модель (типа - эй модель, я вот такой контроллер, возьми в базе и подготовь то, что я передал тебе в экшене). Модель всё собирает, подготавливает, обрабатывает, высчитывает и отдает обратно контроллеру (так сказать голые , но подготовленные данные), а контроллер в свою очередь передает эти данные в вид (представление) в котором все эти данные уже приобретают понятный для пользователя (который задавал запрос), внешний вид.
    Т.е. модель не знает о виде, вид не знает о модели, а посредник у них это контроллер.
    Пример:
    Заказчик(юзер) принес контроллеру, яблоки и сказал, "нужно пюре в стеклянных банках", контроллер передал яблоки в модель и сказал "нужно пюре", модель по своим рецептам готовит пюре и передает готовое пюре обратно в контроллер, контролер берет пюре и говорит виду, "вот пюре, расфасуй его по стеклянным банкам и верни заказчику"

    Я верно понимаю?

    PS: Но первостепенно юзер передает информацию на проходную (route), где вообще, проверяется актуальность его запроса, занимаются ли тут яблоками и делают ли тут вообще пюре.
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Угу. Только надо понимать, что модель - это не один класс, это слой. Данные могут пройти через десятки классов этого слоя, при необходимости.
     
    Altos и AlexandrS нравится это.
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Примерно так. Проверку входных параметров делают во фронте/роутере и в контроллере, полученном в результате роутинга. Также есть такая вещь, как «избыточные проверки» параметров ф-ций и методов – защита от дурака-программиста. Где-то ими можно пренебречь, где-то нет.
     
    AlexandrS нравится это.
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Что в общем-то естественно. Нужно проверить входные параметры, прежде чем обрабатывать их по существу, т.е. выполнять «полезную реакцию» на них. Это относится ко всему, а не только к MVC.
     
    AlexandrS нравится это.
  5. AlexandrS

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

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    По сути весь "мозг" это как раз таки и есть модель.
    Тогда у меня вопрос, еще возникает, для уточнения.
    К примеру веб страница, в тегах <head></head> есть такая разметка как OpenGraph так вот, напишу я класс, который будет реализовывать эту разметку и тут как бы возникает вопрос, где именно должен выполняться этот класс в модели или виде? В моем понимании это уже как бы не совсем логика, а так скажем "этикетка на банку" с яблочным пюре.
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    И то, и др.
    --- Добавлено ---
    Если уже достаточно набора данных, получаемых для вывода осн. содержимого, то изменять или добавлять еще одну модель не нужно.
     
    AlexandrS нравится это.