Простейший MVC шаблон — Исходный код

Редакция автор: stain

Попытка понять #MVC
Controler забирает переменные у Пользователя, и передает после проверки в Модель, Модель делает на основе их запрос, и передает его результат для Представления. Представление же просто получает этот результат(одномерный массив или его строку) и минимально его обрабатывает(отображает или в случае массива отображает в цикле(его лучше пропускать через Проверку на наличие данных)), Представлению не надо передавать переменные только результат работы Модели, но чтобы его получить, в Представлении должны быть активные элементы для обработки Контроллером, действий Пользователя.

#Если вы используете сессии, то их необходимо открывать в этом файле 
session_start(); 
header ("Content-Type:text/html;charset=UTF-8");

//принимает данные от контроллера сохраняет их или изменяет или удаляет 
class Model{ 
  public $string;
  public function __construct(){
    $this->string = 'MVC + PHP = Awesome, click here!'; 
  } 
}

//отображает данные из модель, реагирует на действия пользователя, передает данные в контроллер 
class View{
  private $model;
  private $controller;
  public function __construct($controller,$model) {
    $this->controller = $controller;
    $this->model = $model;
  } 
  public function output() {
    return "" . $this->model->string .""; 
  } 
}

//контроллер собирает данные для передачи в модель, принимает данные от виев 
class Controller{
  private $model;
  public function __construct($model){
    $this->model = $model;
  } 
  public function clicked() {
    $this->model->string = 'Updated Data, thanks to MVC and PHP!'; 
  } 
}


 //точка входа
$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model);
if (isset($_GET['action']) && !empty($_GET['action'])) {
    $controller->{$_GET['action']}();
}
echo $view->output();

Tagged as: ,

Categorized in: coding

Комментариев: 0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.