Задать вопрос

Как правильно передавать данные модели в представление MVC архитектуры?

Разбираюсь с MVC, с моделями вроде всё просто, упёрся в передачу данных на вывод. Например самое простое. Есть блок информационного "уведомления" - всего три/четыре слова в DIV c рамкой и фоном типа "Сообщение успешно отправлено", "Фотография отправлена..", "Собеседник не может ответить", "Зарегистрируйтесь...", "Помощник отключен", "Укажите email" "...пол/возраст".. Таким образом, получилось, что один и тот же блок в разных ситуациях выводит информацию на основании данных нескольких объектов(user(пользователь),human(собеседник)contact,email).

Как правильно реализовать вывод этого "уведомления"? Сейчас я передаю все эти объекты в конструктор и дальше использую методы объектов типо $this->humn->getCity() использую как получение данных модели для вывода, а недостающие передаю параметром в метод вывода. Это нормально?)
function __construct($userObj,$humnObj,$contObj,$emalObj) 
    {             
         include(DIR_INC.'/lng_ru_part.lng');
         $this->lang = $lang_words;

         $this->user = $userObj; 
         $this->humn = $humnObj; 
         $this->cont = $contObj;  
         $this->emal = $emalObj;  
    }


    public function confirmText($saved)                    
    {
        $result =  '';
     ...
    }
  • Вопрос задан
  • 2495 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
mrsombre
@mrsombre
Веб-программист
Это нормально. Вам будет интересно почитать про DI (Dependency injection). Для более простых случаев, когда волокита с DI не оправдана, можно использовать Registry, статическое хранилище, откуда в любом месте можно по необходимости достать нужную модель. Тут можно посмотреть на реализацию ActiveRecord в Yii и непосредственно метод model()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы