网站首页 > 知识剖析 正文
在之前的第一篇文章已介绍过了MVC模式,今期就简绍下一个简单的实现方式,因为不是专门讲解如何实现框架,因此,这里只是实现了MVC模式的一种简单方式,对初学者入门有很好的意义。
首页网站根目录创建如上图文件夹与index.php文件
index.php内容如下
<?php
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 'On');
//这里做个自动加载处理,简化一些类文件(如model)加载流程
function __autoload($class_name){
include_once('model/'.$class_name.'.model.php');
}
//取URL?号后面的字符串,然后转换成数组
$query_arr = explode('?', $_SERVER["REQUEST_URI"]);
parse_str($query_arr[1], $request_arr);
$controller_name = $request_arr['controller'] ? $request_arr['controller'] : 'default';
$action_name = $request_arr['action'] ? $request_arr['action'] : 'index';
require_once 'controller/abstract.php';
require_once 'controller/' . $controller_name . '.ctl.php';
$class = $controller_name . '_Ctl';
$ctl = new $class;
$ctl_action = 'action'.$action_name;
$ctl->{$ctl_action}();
$ctl->execute($controller_name,$action_name);
然后controller目录下创建下图文件
abstract.php内容如下:
<?php
abstract class Abstract_Ctl
{
protected $_vars;
function execute($controller_name, $action_name){
extract($this->_vars);
require_once 'view/' . $controller_name . '/'.$action_name.'.php';
}
function assign($var,$value){
$this->_vars[$var] = $value;
}
}
default.ctl.php内容如下:
<?php
class Default_Ctl extends Abstract_Ctl
{
function actionIndex(){
$model_comment = new Comment();
$str = '这是我的第一个MVC实例';
$this->assign('str',$str);
}
}
然后View目录下创建目录default:
打开default再创建index.php(这个为模板文件,与根目录index.php不同)
其内容如下:
<html>
<meta charset="utf-8"/>
<head>
<title>我是模板</title>
</head>
<body>
<?php echo $str?>
</body>
</html>
model层的使用留待后面展开时再讲吧,后面的“简单评论系统”开发会依据实际情况讲解model的应用。
还需要注意的是,这里讲的都是涉及一些原理性的东西,MVC的思路就是这样。
可能不同的人会有不同的实现方式,因此大家不应该被本小编写的代码固定思维,应该用自己的思路去思考。
因为头.条号不让放下.载.链.接,如果想获得源代码的朋友请留言评论。
猜你喜欢
- 2025-04-30 WordPress使用CDN后显示评论真实IP
- 2025-04-30 webman 事务回滚失效问题记录(事务回滚指令rollback执行的结果是)
- 2025-04-30 如何在WordPress文章分页中添加阅读全文按钮
- 2025-04-30 提权之disable_functions(三)(提权分为哪几个种类)
- 2025-04-30 ThinkPHP后台入口地址查找(thinkphp .htaccess)
- 2025-04-30 Thinkphp3.2.3及以下版本漏洞整理
- 2025-04-30 「某CMS漏洞」SQL注入漏洞分析(sql注入漏洞代码)
- 2025-04-30 php实现一个基本的 MVC 框架(php的mvc设计模式)
- 2025-04-30 PHP漏洞之跨网站请求伪造(php伪造来路跨域跳转)
- 2025-04-30 实现AI API Tokens计费产品方案和技术实现方案设计(PhalApi框架)
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)