【发布时间】:2016-06-22 17:34:38
【问题描述】:
下面的例子展示了我目前是如何做事的。
index.php 包括 index_controller.php 然后 index_template.php。
index_controller.php
$uri = explode('/', $_SERVER['REQUEST_URI']);
$action = $uri[1];
$call = $uri[2];
$tmp = explode('?', $call);
$call = $tmp[0];
$call = preg_replace('/-/', ' ', $call);
switch ($action) {
case "about":
$page = "about.inc.php";
$title = "About Us";
$description = "Description of page";
break;
case "category":
try {
//PDO query to make sure category ($call) exists
}
catch (PDOException $e) {
logError($e->getMessage());
}
if (query->rowCount() < 1) {
$page = "404.inc.php";
$title = "404 Error";
}
else {
//Meta information for selected category pulled from DB and put into variables.
$page = "category.inc.php";
break;
default:
$page = "404.inc.php";
$title = "404 Error";
}
上面的示例显示了 switch 语句中大约 12 个不同页面选项中的 2 个。一个简单的请求(关于)和一个更复杂的请求(类别)。
index_template.php 拥有我所有的头部、正文和页脚 HTML。它设置页面的元数据,设置站点结构,并包含$page 变量在index_controller.php 中设置的任何文件
使用上面的示例,如果有人访问 mysite.com/category/books,index_controller.php 将查看图书类别是否存在,如果存在,category.inc.php 将被包括在内。
category.inc.php 执行另一个 PDO 查询以获取显示所选类别的项目列表所需的所有项目和信息。它还包括一个模板文件来构造返回项目的显示。
我正在尝试实现 MVC 类型结构(不使用 Codeigniter 或 CakePHP 之类的框架),但我并没有真正结束模型。
如何使用类和/或函数而不是我当前使用的所有包含将用户从 URL 获取到视图?
如果您觉得我没有很好地解释提到的其他文件,我也可以提供这些文件中的代码示例。
我们将不胜感激任何帮助、意见或建议。
编辑:根据下面的评论澄清问题。
【问题讨论】:
-
这是一个相当广泛的问题 - 它几乎读作“我如何构建 MVC 框架?”问题的标题暗示了一些更具体的东西,但你从来没有真正澄清这一点。如果您还没有,请查看help center,因为了解此站点与普通论坛有何不同非常重要:您不是在开始对话,因此您需要专注于特定问题,并且确保它是网站的“主题”。
-
@IMSoP 抱歉,这个问题很笼统。我对其进行了编辑以试图澄清实际问题。希望这有助于更好地理解我在寻找什么。