Виды 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, этот пост может оказаться полезным.