Доброе утро всем. Недавно я прочитал статью о шаблоне mvc, в которой говорится, что большинство инфраструктур php внедрили шаблон mvc неправильно. php master mvc pattern part 1 php master mvc pattern part 2 Ну после прочтения этого и рассмотрения этой реализации возник вопрос. Как бы вы назвали в образе метод, называемый в модели? То, что я пытаюсь сказать, это. Это часть кода из статьи.
<?php $model = $_GET['model']; $view = $_GET['view']; $controller = $_GET['controller']; $action = $_GET['action']; if (!(empty($model) || empty($view) || empty($controller) || empty($action))) { $m = new $model(); $c = new $controller($m, $action); $v = new $view($m); echo $v->output(); }
скажем, мы прописали небольшую реализацию этого шаблона проектирования после прочтения статьи, и у нас есть следующий код:
<?php class Index extends Controller { public function __construct(IndexModel $model, $action) { $this->model = $model; } public function someAction($id) { $this->model->getData($id); } } class Index extends View { public function __construct(IndexModel $model, $action) { $this->model = $model; } public function someAction() { $this->model->getData(); } } class Index extends Model { public function __construct() { //Some Code Here } public function someAction() { // Inserting Data into database. } }
Как вы можете видеть, мы вызываем тот же метод как в контроллере, так и для получения данных из базы данных. Но если я правильно знаю, представление должно позаботиться о работе контроллера, поэтому $ id не будет прав, чтобы снова проанализировать его в представлении или что-то в этом роде. Тогда как это можно решить?