A,首先分别实现MVC的基类以及路由模块
控制器(controller.inc)
<?php
class Controller
{
private static $instance;
public function __construct()
{
self::$instance =& $this;
}
public static function &get_instance()
{
return self::$instance;
}
}
?>
模型(model.inc)
<?php
class Model
{
private static $instance;
public function __construct()
{
self::$instance =& $this;
}
public static function &get_instance()
{
return self::$instance;
}
}
?>
路由(router.inc)
<?php
require_once("testcontroller.php");
class Router
{
static public function route(){
$request_uri = $_SERVER["REQUEST_URI"];
$params = explode("/",$request_uri);
$e_class = substr($params[1],strpos($params[1],"?")+1);
$e_method = $params[2];
$inputs = array();
for($i = 3;$i < count($params);$i += 2){
$inputs[$params[$i]] = $params[$i+1];
}
$c = new $e_class;
$c->$e_method($inputs);
}
};
?>
框架入口(index.php)
<?php
require_once("router.inc");
Router::route();
?>
通过上面的一点代码,一个简单的MVC结构就搭建好了
B,下面来具体使用了试试,创建一个自定义model,controller以及视图view
自定义视图(view.tpl)
<html>
<head>
<title>test page</title>
</head>
<body>
<h1><?php
echo $message;
?></h1>
</body>
</html>
自定义控制器(testcontroller.php)
<?php
require_once("controller.inc");
require_once("test_model.php");
class test_controller extends Controller
{
public function find($input){
$model = new test_model();
$res = $model->select($input["id"]);
$message = $res["msg"];
//var_dump($message);
include_once("view.tpl");
}
}
?>
自定义模型(test_model.php)
<?php
require_once("model.inc");
class test_model extends Model
{
public function select($id){
//select * from [table_name]
return array(
"id" => $id,
"msg" => "test message"
);
}
}
?>
这里我没有实现数据库操作类,只是简单的模拟以下,把上面这些文件放到网站根目录下,测试如下的链接
http://localhost/index.php?test_controller/find/id/6
其中test_controller是控制器,find是调配函数,后面的id和6是传递参数
大家可以学习一下php的一些简单易用的MVC框架:codeigniter 和 thinkphp
分享到:
相关推荐
MVC(Model/View/Controller...本文介绍一种基于MVC框架的的新网络应用程序。这种框架把实施逻辑与表现形式独立开来。它也提高了系统的可维护性,可扩展性以及使用模块数据库备案、模板数据库,通讯对象和缓冲队列的性能。
.net mvc验证有很多方式,NET自带的验证方式很难用,并且很复杂。让我们开发者感觉很不爽,今天我推荐一个第三方验证框架——FluentValidation(FluentValidation.MVC)真的很棒,你研究一下可以做深入开发。
SSH框架集,是现在大多数软件设计过程中都会使用的一种框架集。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web...
MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理) ............................................................................... 3 一、MVC原理解析 ...............................................
11.实现右键菜单的功能,自定义一个按钮 12.文章预览功能、修改文章功能 13.查看文章评审(重写分页组件的部分方法) 14.完善分页组件、查看文章评审后台功能 15.由菜单树操作右边的工作区域、完成管理员管理文章...
我们将使用ASP.NET MVC框架和C#编程语言来实现这个项目。 ASP.NET MVC是一种成熟的开发框架,它采用模型-视图-控制器的设计模式,将应用程序的逻辑和界面分离,提供了更好的代码组织和可维护性。我们选择ASP.NET MVC...
本资源提供了一个基于ASP.NET平台的多功能聊天软件的设计与开发案例,专注于文字聊天和文件传输功能的实现。该案例不仅包含了完整的源代码,还附带了详细的论文文档,为开发者提供了从理论到实践的全面指导。 **...
我们将使用ASP.NET MVC框架和C#编程语言来实现这个项目。 ASP.NET MVC是一种成熟的开发框架,它采用模型-视图-控制器的设计模式,将应用程序的逻辑和界面分离,提供了更好的代码组织和可维护性。我们选择ASP.NET MVC...
2、MVC框架(抽象工厂 + 观察者模式) + SSH / Django 3、网络通信(WebSocket + WebRTC + Webservice) 4、服务器推送技术(JPUSH) 5、ARM涉及模块:WIFI模块、网络通信模块、(传感器模块) 6、代码控制管理:...
采用的技术 Struts框架诞生于2001年,Struts 2是Struts的下一代产品,Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的...
“DRY——避免重复代码”是一个优秀的开发者在开发软件时所具备的最重要的思想之一。我们在开发企业WEB应用程序时都有一些类似的需求,例如:都需要登录页面、用户/角色管理、权限验证、数据有效性验证、多语言/本地...
采用全球认可的最为先进的开放理念——OOP(面向对象),进行全新框架设计。框架结构更为清晰,代码更易于维护。模块化做为功能的开发形式,让扩展性得到保证。V9特别设计的二次开发扩展方式,让你不再修改官方的...
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3、 系统的易用性和...
Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control...
18 7.2.2 数据库表之间的关系设计 19 8 程序效果展示 20 8.1 前台功能模块 20 8.2 后台功能模块 22 9 实习总结体会 27 实习内容简述 1 实习期间完成的学习内容: 1 Java Web、JSP技术和MVC框架: Java技术是Sun公司...
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销...
毕业设计项目——智能家居原型开发 涉及技术与平台: 1、android客户端应用开发技术(应用客户端app + 遥控器客户端app) 2、MVC框架(抽象工厂 + 观察者模式) + SSH / Django 3、网络通信(WebSocket + WebRTC + ...
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3、 系统的易用性和...
2、MVC框架(抽象工厂 + 观察者模式) + SSH / Django 3、网络通信(WebSocket + WebRTC + Webservice) 4、服务器推送技术(JPUSH) 5、ARM涉及模块:WIFI模块、网络通信模块、(传感器模块) 6、代码控制管理:...