Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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-视图中控制器的函数_Php_Oop_Model View Controller - Fatal编程技术网

PHP-视图中控制器的函数

PHP-视图中控制器的函数,php,oop,model-view-controller,Php,Oop,Model View Controller,我正在尝试学习MVC模式(但是没有模型,因为我看不到当我有控制器时可以使用它们) 所以我想在我的视图中显示一些内容。我该怎么做 这是我的控制器,负责索引: <?php class Index extends Controller { function __construct() { parent::__construct(); $this->view->render('mainpage/index'); } publ

我正在尝试学习MVC模式(但是没有模型,因为我看不到当我有控制器时可以使用它们)

所以我想在我的视图中显示一些内容。我该怎么做

这是我的控制器,负责索引:

<?php

class Index extends Controller {

    function __construct() {
        parent::__construct();
        $this->view->render('mainpage/index');
    }

    public function wynik($arg) {
        echo $arg;
    }
}

$klasa = new Index();

?>

我想在我的视图中调用函数wynik($arg)。我该怎么做?我的控制器库如下所示:

<?php

class Controller {

    function __construct() {
        $this->view = new View();
    }

}
?>
<?php
echo $klasa->wynik('abc');
// tried this too:
$this->wynik('abc');
?>

在views/mainpage/index.php中,我正在尝试以下内容:

<?php

class Controller {

    function __construct() {
        $this->view = new View();
    }

}
?>
<?php
echo $klasa->wynik('abc');
// tried this too:
$this->wynik('abc');
?>

但它不起作用:

注意:第2行的C:\wamp\www\lvc\views\mainpage\index.php中的未定义变量:klasa

致命错误:在第2行的C:\wamp\www\lvc\views\mainpage\index.php中对非对象调用成员函数wynik()

这是视图库:

<?php

class View {

    function __construct() {

    }

    public function render($name, $noInclude = false) {
        if ($noInclude == true) {
            require 'views/' . $name . '.php';
        } else {

            require 'views/header.php';
            require 'views/' . $name . '.php';
            require 'views/footer.php';
        }
    }

}

?>


我在想-是的,它在View()类中搜索wynik()函数,这就是它出错的原因。我希望视图在控制器中的函数中进行搜索。如何做到这一点?

我建议您使用另一种称为“事务脚本”的概念,它可以很好地与前端控制器或应用程序控制器配合使用,而不是MVC,也不知道原因等等

使用事务脚本可以让您更加熟悉OOP,同时还可以从一些应用程序结构中获益,而不会产生被误解的MVC所带来的开销和问题

例如,在事务脚本对象中,所有内容都可以访问该事务的功能。您的库、视图和其他一切(模型)

然后你会看到事情在发展。但忘记Codeigniter和类似的东西,从头开始写(不要模仿),你会学到更多,你会有更高效的代码

你会按照自己的方式去做,这对学习很有好处


对于库,只需从Packagist和Pear存储库中获取内容,您就不会有太多愿望了。

我建议您使用另一个称为事务脚本的概念,它也可以很好地与前端控制器或应用程序控制器配合使用,而不是MVC

使用事务脚本可以让您更加熟悉OOP,同时还可以从一些应用程序结构中获益,而不会产生被误解的MVC所带来的开销和问题

例如,在事务脚本对象中,所有内容都可以访问该事务的功能。您的库、视图和其他一切(模型)

然后你会看到事情在发展。但忘记Codeigniter和类似的东西,从头开始写(不要模仿),你会学到更多,你会有更高效的代码

你会按照自己的方式去做,这对学习很有好处


对于库,只需从Packagist和Pear存储库中获取内容,您就不会有太多愿望了。

MVC是一种结合了两个层的设计模式:

  • 模型层
  • 表示层
如果您的应用程序没有模型层(包含所有域业务逻辑),那么就没有MVC。


表示层主要由两组结构组成:视图和控制器

  • 控制器:负责响应用户的输入,并在此基础上更改模型层和视图的状态

  • 视图:根据视图从模型层接收到的信息,负责显示(或表示)逻辑。基于此信息,视图选择适当的响应-它可以是HTTP头文件或HTML文件,由多个模板或格式化的JSON/XML数据呈现

但是你也没有真正的观点。您所谓的“视图”实际上是简单的PHP

至于视图访问控制器的方法,它违背了MVC和受MVC启发的模式中的所有原则。视图是一个单独的实体,它从模型层获取数据,并由控制器更改状态

在经典MVC和Model2 MVC模式中,视图是活动的。它直接从模型层请求信息。而在MVP和MVVM模式中,视图是被动的,来自模型层的信息由控制器提供(尽管在这些模式中,它们分别称为“presenters”和“viewmodels”)

视图不使用控制器

请在你开始使用术语之前做一些研究,因为你认为这是最新的东西。

阅读以下材料:


MVC是一种结合了两层的设计模式:

  • 模型层
  • 表示层
如果您的应用程序没有模型层(包含所有域业务逻辑),那么就没有MVC。


表示层主要由两组结构组成:视图和控制器

  • 控制器:负责响应用户的输入,并在此基础上更改模型层和视图的状态

  • 视图:根据视图从模型层接收到的信息,负责显示(或表示)逻辑。基于此信息,视图选择适当的响应-它可以是HTTP头文件或HTML文件,由多个模板或格式化的JSON/XML数据呈现

但是你也没有真正的观点。您所谓的“视图”实际上是简单的PHP

至于视图访问控制器的方法,它违背了MVC和受MVC启发的模式中的所有原则。视图是一个单独的实体,它从模型层获取数据,并由控制器更改状态

在经典MVC和Model2 MVC模式中,视图是活动的。它直接从模型层请求信息。而在MVP和MVVM模式中,视图