PHP原生实现简易的MVC框架

目录结构:

—|controller

—|Home.php

—|model

—|view

—|welcome.php

—|index.php

基本原理:

首页 index.php 通过获得地址栏中的路由名称获得对应控制器以及控制的方法名,通过require引入到index.php首页中。通过引入的对应控制器的类实例化一个对象,对象调用路由地址映射的方法,实现对视图层的调用显示。

实现具体代码:

  1. /index.php 首页代码实现:
<?php?# 获取当前的服务地址$server = $_SERVER;?#获取到当前访问的主机名之后的URI$path = $server[‘REQUEST_URI‘];  # /test/index.php/home/welcome?$path = ltrim($path, ‘/‘); # 去掉获得的路径前的 /$controller_method = explode(‘/‘, $path); # 根据 / 获得分割数组来取得控制器名字和对应方法$controller = ucfirst($controller_method[2]); # 将控制器名字的第一个更换为大写$method = $controller_method[3]; # 对应的方法名require_once __DIR__.‘/controller/‘.$controller.‘.php‘; # 定位到当前使用的控制器?$obj = new $controller(); //实例化控制器对象?$obj->$method(); //控制器对象调用目标方法?exit($obj);?
  1. /controller/Home.php 控制器代码实现:
<?phpclass Home{?    public function index(){        echo ‘hello MVC‘;    }?    public function welcome(){        require_once __DIR__.‘/../view/welcome.php‘;    }}
  1. /view/welcome.php 视图层代码实现:
<!DOCTYPE html><html><head>    <title>welcome</title></head><body><div style="font-size: 18px;text-align: center;color: red;">welcome to hefei</div><?php echo date(‘Y-m-d H:i:s‘)?></body></html>

结束语:

基本上大部分框架都是基于MVC架构实现的,懂得基本的MVC框架设计的原理,有助于我们学习框架,以及对良好的框架的应用更加得心应手,并能很好地理解其中的设计思想,慢慢演化成为一个有想法的Coder。

原文地址:https://www.cnblogs.com/artsmp/p/12037049.html

时间: 2024-08-30 14:33:08

PHP原生实现简易的MVC框架的相关文章

利用jsp和Servlet实现自己的原生JavaEE MVC框架

MVC是什么我就不多说了,我们平时做JavaWeb项目时,大都会用SSH框架的不同组合,那能不能不用SSH框架来实现一个原生的MVC框架呢? 下面就让我们来实现一个自己的javaWeb MVC框架. 项目结构如下: Controler的实现: package com.shu.controler; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServ

从零开始实现一个简易的Java MVC框架(三)--实现IOC

Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency Injection),即依赖注入就是Ioc的一种实现方式.关于Ioc和DI的具体定义和优缺点等大家可以自行查找资料了解一下,这里就不详细赘述,总之spring的IoC功能很大程度上便捷了我们的开发工作. 在实现我们的Ioc之前,我们先了解一下spring的依赖注入,在spring中依赖注入有三种方式

通过ASP.NET MVC框架 + 原生JavaScript + Ajax + SQL SERVER 实现一个简单的有论坛功能的网站(有通过iis发布的例子)

ASP.NET MVC. M 为Model模型层, V 为View视图层, C 为Controller控制层.要想使用MVC框架来写网站就需要了解M V C 的作用分别为哪些.给大家简单的介绍一下: 1.当你的这个网站要与数据库交互的时候,你可以使用EF创建一个数据库模型,也可以用类存放你所需交互的字段数据.我们往往把这类文件放在model层. 2.view层,存放前端网页的. 3.controller层实现前端网页功能的,在这个层里面我们编写的方法称为action. www.lazyfitne

简易 MVC框架 弃坑

MVC 模型视图控制器模型 这是中文名称 原先是为桌面应用建立的框架,后来转变成为B/S模型. 经典图如下 说一下CGI,是使用CGI 和apache进行连接,当发生一个请求的时候,进入apache,即web server,由web server执行事先编辑好的CGI程序,由CGI程序读取databases,由CGI程序把读取到的dtatBases整合,返回给webserver 再由webserver返回给浏览器,实现了该协议的由php-cgi,但是继续,每次收到一个请求都会fork一个进程,把

开发自己的PHP MVC框架(一)

这个教程能够使大家掌握用mvc模式开发php应用的基本概念.此教程分为三个部分.如今这篇是第一部分. 如今市面上有非常多流行的框架供大家使用.可是我们也能够自己动手开发一个mvc框架.採用mvc模式能够大大降低我们开发应用的时间,并且能够更好的组织项目源码,并且当中的某些模块还可在其他项目中使用.如今我要教大家写一个简单的mvc框架.因为这个项目非常easy,轻量.所以可能并非最佳实践,也不具备安全性.还须要大家在实际应用中完好. 所用技术:php,面向对象开发方法. 開始 首先在站点根文件夹下

Spring MVC 简述:从MVC框架普遍关注的问题说起

任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发.数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外.本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理.架构角度介绍了它对这些问题的处理,包括请求处理流程.消息转换机制和数据绑定机制等核心问题.最后,本文对目前最为流行的两个MVC框架SpringMVC 和 一. MVC 模式与框架 1.MVC 模式 Java We

分享一实战性开源MVC框架&lt;Linux、Windows跨平台开发so easy&gt;

一.引子   开源地址 http://pan.baidu.com/s/1slCMspR .NET Core微软还在发力,但作为商用还有一段距离,很多开发库尚不能用于.NET Core,因此我们还没有看到一个大型的使用案例, 这时大家或许想到Mono部署ASP.NET MVC,但部署过的人必然知道:这不是一个容易的工作,需要各种工作,至今也没有几个人容易地完成这项工作. .NET Core作为微软的新星,但还不够成熟强大,在其发出耀眼光辉之前,我们分享一实战性强的开源MVC框架: Moon.Mvc

开发自己的PHP MVC框架

本教程翻译自John Squibb 的Build a PHP MVC Framework in an Hour,但有所改动,原文地址:http://johnsquibb.com/tutorials 这个教程可以使大家掌握用mvc模式开发php应用的基本概念.此教程分为三个部分,现在这篇是第一部分. 现在市面上有很多流行的框架供大家使用,但是我们也可以自己动手开发一个mvc框架,采用mvc模式可以大大减少我们开发应用的时间,并且能够更好的组织项目源代码,而且其中的某些模块还可在其它项目中使用.现在

.Net Mvc框架知识点

https://www.h .Net Mvc框架知识点 一.实现Controller的依赖注入: 1.自定义继承DefaultControllerFactory 类的控制器工厂类并重写GetControllerInstance方法:(如:InjectControllerFactory) 2.在Global.asax文件中的Application_Start方法中注册该控制器工厂类,示例如下: ControllerBuilder.Current.SetControllerFactory(new I