Добрый день. В PHP я новичек. Сейчас осваиваю MVC.
Классический контролер:
//Controler.php
$Cat= new Category(); //создаем объект класса
$Cat->id=$id;
$Cat->GetData();
include('Category_view.php');//показываем данные
Соответственно, вид представляет собой:
//Category_view.php
echo "<div>".$Cat->MyString."</div>"
Мне необходимо заменить в контролере строчку:
include('Category_view.php');
на что-то типа:
$Cat->Display(); //показываем данные
Чтобы экземпляр класса сам показывал данные, т.е. модель в этом случае будет примерно такой:
//Category_Model.php
Class Category() {
//Методы
pablic function Display(){
include('Category_view.php');
}} //Class Category
Проблема в том, что не могу понять, как передать параметры модели во view. Сейчас пробую делать через переменную в классе, но это не выход, если свойств много - это куча переменных:
//Category_Model.php
Class Category() {
pablic function Display(){
$br=$this-> MyString; // Код выполняется, Вид отображается, но это НЕПРАВИЛЬНО!!!
include('Category_view.php');
}
} //Class Category
//соответственно:
//Category_view.php
echo "<div>". $br."</div>"
Потому что, вот так не получается:
//Category_view.php
echo "<div>".$this->MyString."</div>"
Проблема получается в "видимости" свойств класса модели. Как я думаю, Вид не понимает, что-такое "$this->", и как ему отправить туда данные - вопрос. Смотрел в примерах, что делают отдельный класс View, который выводит данные, но их же туда надо как то отправлять из объекта другого класса?