Виды PHP связаны с контроллерами

Я хотел бы реализовать контроллеры, которые подключаются к любым конкретным представлениям, как это делает MVC. Я не использую какие-либо рамки, которые предоставляются в PHP.

Итак, мне нужно руководство и совет по этому вопросу.

У меня есть несколько контроллеров и просмотров. На мой взгляд, я хотел бы просто выводить только мои данные. Моя проблема сейчас в том, как моя функция (как create()) в контроллерах, можно получить все $_POST['params'] что пользователи вводят данные в мой views/create.php и создайте новую модель в create() функция контроллеров.

Итак, прямо сейчас, я думаю сделать так, я создам класс MyViews в моей папке контроллеров. Целью является загрузка определенных видов и получение всех $_POST params в объект. Затем каждый контроллер, такой как Users_controllers, будет создавать MyViews. В функции Users_controllers, как create(), destroy() Я мог бы использовать функцию в MyViews для загрузки определенных представлений для загрузки объекта.

Я нашел источник, который загружает просмотры

<?php
class MyView {
protected $template_dir = 'templates/';
protected $vars = array();
public function __construct($template_dir = null) {
    if ($template_dir !== null) {
        // Check here whether this directory really exists
        $this->template_dir = $template_dir;
    }
}
public function render($template_file) {
    if (file_exists($this->template_dir.$template_file)) {
        include $this->template_dir.$template_file;
    } else {
        throw new Exception('no template file ' . $template_file . ' present in     directory ' . $this->template_dir);
    }
}
public function __set($name, $value) {
    $this->vars[$name] = $value;
}
public function __get($name) {
    return $this->vars[$name];
}
} ?>

хм, я понятия не имею, как я могу определить параметры _POST

    if(isset($_POST['Post']))
    {
        $model->attributes=$_POST['Post'];
        if($model->save())
            $this->redirect(array('view','id'=>$model->id));
    }

это та структура Yii, которую я наблюдал. Как я могу обнаружить параметры, является ли $_POST или же $_GET после загрузки конкретных просмотров.

Любое руководство и совет для архивирования моих задач?

1 ответ

Решение

Не связан с вопросом
У вас есть одна большая проблема: ваша способность выражать то, что означает, чрезвычайно ограничена. Вопрос, который вы задали, на самом деле не был связан с вашей проблемой.

Из того, что я собираю, вам нужно обнаружить, что пользователь сделал POST или же GET запрос. Обнаружьте это непосредственно, вы можете проверить $_SERVER['REQUEST_METHOD'], но проверка с помощью контроллера может быть довольно утомительной. В итоге вы получите множество методов контроллера, которые ведут себя по-разному в зависимости от метода запроса.

Поскольку вы не используете ни одну из популярных платформ, рекомендуется вместо этого делегировать это решение механизму маршрутизации.

Довольно хороший способ справиться с этим, по моему мнению, состоит в том, чтобы добавить префикс именам контроллера к методу запроса: postLogin(), getArticles() и т.д. Вы можете найти несколько дополнительных примеров здесь. Если есть POST запрос, он будет иметь что-то в $_POST массив.

То, что называют "представлениями", на самом деле являются шаблонами. Если вы прочитаете эту статью, вы заметите, что код на самом деле является улучшенной версией вашего MyView , Представления не являются шаблонами. Представления - это экземпляры, которые содержат логику представления и управляют несколькими шаблонами.

PS Если вы исследуете шаблоны на основе MVC и MVC по отношению к PHP, этот пост может оказаться полезным.

Другие вопросы по тегам