如何在php中MVC而不使用某些框架
2022-08-30 22:01:21
我对模型-视图-控制器模式有一些(也许是基本的)知识,我想用它创建一个网站。但是我发现如何实际实现这一点有点令人困惑。我被困在细节中。
假设我有一个网站,每个用户都保留一些待办事项列表。你会怎么做?您将创建哪些类?哪个类将输出 HTML,哪个类将作为控制器进行服务器,以及它将如何与视图通信以生成输出?等。
对不起,如果它看起来很愚蠢,我想这一定有点容易,但我被困住了。
我对模型-视图-控制器模式有一些(也许是基本的)知识,我想用它创建一个网站。但是我发现如何实际实现这一点有点令人困惑。我被困在细节中。
假设我有一个网站,每个用户都保留一些待办事项列表。你会怎么做?您将创建哪些类?哪个类将输出 HTML,哪个类将作为控制器进行服务器,以及它将如何与视图通信以生成输出?等。
对不起,如果它看起来很愚蠢,我想这一定有点容易,但我被困住了。
记录在案:
在PHP中做MVC并不难,它更与纪律有关,而不是一项困难的任务。
a) 模型(可选,您可以在 PHP 中使用数组)
<?php
class MyModel() {
}
?>
b) 路线(索引.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;
}
?>
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;
}
?>
d) 查看
<html>
<body>
<?=$model->field;?>
</body>
<html>
请注意:
a) 视图应尽可能干净。认为视图可以由不关心php的Web设计人员创建。
b) 视图始终是该过程的最后一步。视图 Web 始终不返回任何内容。
在没有现有框架的情况下执行此操作是非常可能的,只需创建自己的框架即可。无论如何,这不是一项非常困难的任务。
不是特定于应用程序的,您的 MVC 框架必须执行以下操作:
有多种方法可以实现视图,您可以模拟 ASPMVC 并让每个控制器的操作返回一个 ,该操作具有一个方法 Execute。然后,重载它将负责加载正确的视图并将其包含在适当的 .ActionResult
ViewResult
ModelData