Не знаю, с чем было связано, может комп глючил. Но сейчас все работает так, как и должно было работать с самого начала:
//Controler.php
$Cat= new Category(); //создаем объект класса
$Cat->id=$id;
$Cat->GetData();
$Cat->Display(); // объект сам знает как себя отображать
//Category_Model.php
Class Category() {
...
public function Display(){
include('Category_view.php');
}} //Class Category
//Category_view.php
<div>$this->MyString</div>
Для чего это нужно!? Вот для чего. Отправляем на сервер AJAX команду вида: класс1/метод1/праметры/класс2/метод2/метод3. Т.е. Некоторый объект класса 1 должен выполнить методы: 1 (а может 2 и 3) с параметрами, а так же класс 2 должен выполнить методы 2,3 (а может и метод 1 если он у него есть) так же с праметрами.
В Роутере строка разбирается на слова и запускается механизм:
foreach ($_POST as $Val) {
if (class_exists($Val)) { //проверяем, есть ли такой класс
$MyClass=$Val; //запоминаем имя кассса
$MyObj= new $Val();//создаем объект
}
if (!empty($MyObj)) { //если создали экземпляр класса, присваиваем ему свойства
foreach ($_POST as $prop => $obj) {
if (property_exists($MyClass,$obj)){ //проверяем есть ли у класса свойство, если есть присваиваем его значение
$MyObj->$prop=$obj;
}
}
}
foreach ($_POST as $Met) {// отдельно выполняем методы, после заполнения параметров
if (!empty($MyObj)) { //если создали экземпляр класса
if (method_exists($MyClass,$Met)){ //проверяем есть ли у класса метод, если есть, то выполняем его
$MyObj->$Met(); //выполняем метод
}
}
}
Все это избавляет нас в контролере от писанины вида:
if ($Conntrol=="LoadCentrChild") {
if ($Action=="сlick") {
$Cat = new Catalog ();
$Cat->idLeft=$params["id"];//отправляем на вход id, по которому кликнули
$Cat->LoadLeftParent();//загружаем левую панель
$Cat->Display();/
}
}
if ($Conntrol=="NewCategory") {
if ($Action=="Create") {
$Category = new Category();
$Category->NameCat=$params["NameCat"];
$Category->Create();
$Category->Display();
}
}