创建 php mvc 应用程序的最佳实践是什么。我是asp.net开发人员,其中 Controller 与 View 链接。但是我在php mvc教程中看到 View 有 Controller 和模型类型的两个数据成员。 View 用于调用对象和模型的 Controller 类型的相应 Controller 。 View 包含有关 Controller 和模型的信息,其中 Controller 只知道模型。
class model{
//code..
}
class controller{
priavate $model;//model type object
//code..
}
class view{
private $model;//model type of object
private $controller//controller type of object
//code..
}
但是在 ASP.NET MVC 中, Controller 决定在发生特定事件时调用哪个 View 。有关模型和 View 的 Controller 信息。 View 只能有对象的模型类型。在 php 中如下
class model{
//code..
}
class controller{
private $model;//model type object
private view;/view type object
//code..
}
class view{
private $model;//model type of object
//code..
}
在 php 中,哪一种是在 Controller 中创建对象的 View 类型或在 View 中创建对象的 Controller 类型的最佳方法。
非常感谢!
最佳答案
Php 没有“开箱即用”的 MVC 结构。 有多种方法可以实现 MVC 结构,您可以构建自己的。
一些有用的文章: https://r.je/mvc-in-php.html
http://www.sitepoint.com/the-mvc-pattern-and-php-1/
我个人创建了一个 Tempalte 类,它的方法允许将数据添加到所选 View 。
这里是一个例子:
<?php
/**
* Description of Template
*
* @author yuri.blanc
*/
class Template {
private $template = TEMPLATE;
private $message = array();
/**
*
* @var array
*/
private $var = array();
private $view;
/**
*
* @param array $args
*/
public function renderArgs($name, $value){
$this->var[$name] = $value;
}
public function render($controller, $view) {
$ctrl = strtolower($controller);
$this->page_content = $this->view = APP_ROOT."/view/$ctrl/$view.php";
$this->renderArgs("template", $this->template);
$this->renderArgs("page_content", $this->page_content);
extract($this->var);
include APP_ROOT."template/$this->template/index.php";
}
}
这样,您的目标 View 将具有 $name 变量和 $value 作为数据。 要创建 View ,您只需在 Controller 上执行所需操作,然后在添加“args”后在模板实例上使用 render($controller,$view) 。 (文件为 view/CONTROLLER/VIEW.php)。
在此示例中,php 模板文件充当静态容器,其中包含 View 文件(主容器)。
关于php - php中的mvc架构最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435649/