网站首页 > 开源技术 正文
在之前的第一篇文章已介绍过了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-10-14 ThinkPHP8后端访问uniCloud云函数URL化密钥签名认证访问策略
- 2025-10-14 在MAC上利用Docker镜像搭建PHP5.2开发环境
- 2025-10-14 合同系统新思路:低代码开发,让非技术人员也能搭建合同流程
- 2025-10-14 这应该是我见过最清晰的MySQL架构分析了:基础+架构设计+性能调优
- 2025-10-14 「每周FPGA案例」至简设计系列_矩阵按键检测
- 2025-10-14 PHP分布式锁超卖方案以及高并发优化
- 2025-10-14 如何快速设计一款好BANNER?6个步骤帮你速成!
- 2025-10-14 Redis中BitMap是如何储存的,以及PHP如何处理
- 2025-10-14 六星教育:金三银四跳槽季,PHP程序员如何学习来增强竞争力?
- 2025-10-14 今晚拿下PHP反序列化的一系列操作
欢迎 你 发表评论:
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)

本文暂时没有评论,来添加一个吧(●'◡'●)