Geo*_*nis 15 php oop model-view-controller
我有一些(基本可能)模型 - 视图 - 控制器模式的知识,我想用这个创建一个站点.但我觉得如何实际实现它有点令人困惑.我陷入了细节之中.
假设我有一个网站,每个用户都会保留一些待办事项列表.你会怎么做?你会创建什么课程?哪个类将输出HTML,哪个类将作为控制器服务器以及它如何与视图通信以产生输出?等等
对不起,如果它看起来很傻,我想它一定有点容易,但我卡住了.
mag*_*nes 11
作为记录:
在PHP中创建MVC并不困难,它与遵守规则相关,而不是一项难度任务.
a)模型(可选,您可以在PHP中使用数组)
<?php
class MyModel() {
}
?>
Run Code Online (Sandbox Code Playgroud)
b)路由(index.php?)
<?php
include "...";
// here we collects all the information, such post,get and path values
$action=...;
$param=....;
switch($controller) {
case "my": // www.myweb.com/my/action
include "controller\MyController.php"; // open the right controller.
break;
}
?>
Run Code Online (Sandbox Code Playgroud)
c)控制器
<?php
include "model\MyModel.php";
switch($action) {
case "add":
// here live the logic, information, call for services and such.
$model=....;
// and finally...
include "view\MyView.php";
break;
}
?>
Run Code Online (Sandbox Code Playgroud)
d)查看
<html>
<body>
<?=$model->field;?>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)
作为一个说明:
a)视图应尽可能干净.认为视图可以由不关心php的网页设计师创建.
b)视图始终是该过程的最后一步.视图Web始终不返回任何内容.
没有现有框架就可以做到这一点,只需创建自己的框架.无论如何,这不是一项非常艰巨的任务.
不是特定于应用程序,您的MVC框架必须执行以下操作:
有多种方法可以实现视图,您可以模拟ASPMVC并让每个Controller的操作返回一个ActionResult,它有一个方法Execute.然后重载,ViewResult将负责加载正确的视图,并包括正确的视图ModelData.
| 归档时间: |
|
| 查看次数: |
11910 次 |
| 最近记录: |