百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

网站开发初级(4) 之 PHP MVC模式的简单实现

moboyou 2025-07-03 00:11 7 浏览

在之前的第一篇文章已介绍过了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的思路就是这样。

可能不同的人会有不同的实现方式,因此大家不应该被本小编写的代码固定思维,应该用自己的思路去思考。

因为头.条号不让放下.载.链.接,如果想获得源代码的朋友请留言评论。

相关推荐

NodeJs(一)我对NodeJs的认知

欢迎来到我的NodeJs专题系列,更多精彩内容持续更新中,敬请关注!写在前面前面我已经分享了100+篇前端相关的技术文章,都是自己平时工作中遇到的一些问题的问题,还有是我平时自学的内容。但是那些前端文...

「Django框架」-Django初识

Django介绍Django是一个由Python编写的Web应用框架。它源自一个在线新闻Web站点。Django作为一个从新闻系统生成环境中诞生的框架,是直接面向企业级开发的。Django是一个全功能...

什么是PHP?APP开发可以选择PHP编程语言吗?

在开发一款APP的过程当中,一支专业的APP开发团队需要UI设计师、前端开发人员、后端开发人员以及测试等等。而熟练掌握PHP编程语言的人才就相当于APP开发团队中的后端开发人员。一般在APP开发中后端...

php可以做前端吗

php可以做前端吗?php不可以做前端,因为php是在服务器端执行的脚本语言,也就是后端语言,主要适用于Web后端开发领域。php简介:PHP(全称:PHP:HypertextPreprocesso...

PHP多久能学会?比java,python难还是简单呢?

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。利于学习...

java哪有这细糠啊,PHP是世界上最好的语言!

要不说我们要多了解一下其他技术呢,java哪有这好玩应啊。今天分享个php开发的辅助工具:phpenv(当然,php是世界上最好的语言,毋庸置疑)phpenv就是一个开发者工具箱神器,只有拥有了他,你...

Java和Php的对比

(1)开发速度Java是一种面向对象和结构化的语言,开发速度较慢,比如代码更多,耗费较多时间。而PHP是一种解释型语言,开发速度快,代码量少,耗费的时间较少。(2)安全性Java基于字节码形式进行...

php宝塔搭建实战多端壁纸小程序源码一(wordpress后台安装篇)

大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套php开发的多端壁纸类型的小程序源码,后台是使用wordpress集成的,前端是使用uniapp开发的。今天先给大家分享后台怎么在宝塔里部署...

PHP中的IMAP扩展简单入门

对于邮件处理来说,大家比较熟悉的应该是POP3、SMTP这类的协议,而今天我们介绍的IMAP其实也是非常常用的一种邮件处理协议。它和POP3比较类似,都是以接收处理邮件为主。不过相对于...

【推荐】一款免费、全能型的数据库管理神器,效率提升利器

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍HeidiSQL是一款免费的数据库管理工具,适用于与数据库打交道的开发人员和数据库管理员。它支持多种数据...

Php+Vue.js实现的项目管理系统

一个基于Vue.js实现的项目管理系统目前已实现的主要功能项目管理任务管理账号管理文件管理团队管理权限管理多组织管理技术栈PHPVueMySQLRedis相关界面前端源码地址:https://git...

让PHP和Node.js同框共舞:解密php-node的革命性玩法!

你有没有想过,PHP和Node.js有朝一日能在一个进程里握手言和?不是“后端服务调用后端服务”,也不是“前端请求后端接口”,而是——直接共享内存、互传变量、同步执行逻辑。听起来像是幻想,但今天...

8个增强PHP程序安全的函数

安全是编程非常重要的一个方面。在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性。在现代网站应用中,经常要获取来自世界各地用户的输入,但是,我们都知道“永远不能相信那些用户输入的数据”...

Peachpie —— .NET 的 PHP 编译器

Peachpie是一款.NET平台的PHP编译器,主要特性:物联网:可以使用PHP开发WindowsIoT设备应用,至少节省30%的开发支出安全:可以在最安全的平台上运行PH...

PHP的垃圾回收机制-PHP高级面试题+详解

ps:本篇内容包括精选面试题与知识篇。PHP面试题关于PHP的垃圾回收机制,PHP的垃圾回收机制引用计数(referencecounting)GC机制,PHP可以自动进行内存管理,清除不需要的...