Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-MVC,我的说法正确吗?_Php_Templates_Model View Controller - Fatal编程技术网

PHP-MVC,我的说法正确吗?

PHP-MVC,我的说法正确吗?,php,templates,model-view-controller,Php,Templates,Model View Controller,所以我有模型、视图和控制器,我的代码可以工作,但是如果我正确地使用它,我没有人来教育我 我不会复制粘贴整个代码,因此我绘制了它的工作原理: 代码部分: class Site { protected $config; function __construct() { $this->config = include("resources/config.php"); } private function connect() { /*database connection*/ }

所以我有模型、视图和控制器,我的代码可以工作,但是如果我正确地使用它,我没有人来教育我

我不会复制粘贴整个代码,因此我绘制了它的工作原理:

代码部分:

class Site {
protected $config;
 function __construct() {
     $this->config = include("resources/config.php");
 }
 private function connect() { /*database connection*/ }

 public function getData($var) { 
   /* connecting, $var = amout of rows, and storing the data in array() */
}
}

class SiteView {

private $data;

function __construct(Site $data) {
    $this->model = $data;
}
public function output() { 
if(!empty($this->model->data)) { /* displays the data */ }
}
public function render($template) {
   return include("$template");
}
}

class SiteController {
public function __construct(Site $respond) {
    $this->model = $respond;
}

public function condition() {

    $view = new SiteView($this->model);

    $view->render("header.php");

    if(!isset($_GET['action'])) {
        $view->render("body.php");
    } else if($_GET['action'] === "report" AND isset($_GET['id'])) {
        $view->render("report_body.php");
    } else if ...
}

所以模型和视图是用在模板中的,我不确定这是好事还是坏事。感谢您提供的任何帮助或为我指路。

MVC或模型、视图和控制器方法是模型用于用户使用的数据,控制器是后端逻辑,视图是HTML或用户界面(UI)中的输出
通常每个请求都首先到达控制器。控制器与模型和视图连接。控制器根据模型的请求采集数据,并将数据发送到视图进行显示。视图无法与模型连接


有关更多详细信息,请参阅此链接,

我至少收到了一个反馈:。我得到了一个变量$db,并将连接分配给它,在每个调用数据的模型函数的末尾,我有“$this->db=null;”关闭连接,这样可以吗?不可以,ist不可以。因此我只需在{u构造}中创建连接然后将连接分配给变量(对我来说是“$this->db”),然后我就可以在其他函数中使用该变量了?如果我喜欢这篇文章,我不需要用Try{}和Catch{}来描述SQL调用?一切都会正常工作,我会挽救我服务器的生命?:)您应该在其他地方创建连接,然后将其传递到构造函数中,在构造函数中将其分配给局部变量。是的,如果您只是为了报告错误而这样做,则不需要使用Try{}和Catch{}覆盖SQL调用。