简单快速打造你自己的PHP MVC框架

简介

MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架。虽然不能保证100%的开发语言都会使用框架,所以最好的理解MVC的方法就是写一个你自己的MVC框架。兄弟连www.lampbrother.net在这篇文章中将会向你展示如何构建一个自己的MVC框架。

MVC架构模式

M: Model-模型

V: View-视图

C: Controller-控制器

MVC的关键概念就是从视图层分发业务逻辑。首先解释以下HTTP的请求和相应是如何工作的。例如,我们有一个商城网站,然后我们想要添加一个商品,那么最简单的一个URL就会是像下面这个样子:

http://bestshop.com/index.php?p=admin&c=goods&a=add

http://bestshop.com就是主域名或者基础URL;

p=admin 意味着处在管理模块,,或者是系统的后台模块。同时我们肯定也拥有前台模块,前台模块供所有用户访问(本例中, 它是p=public)

c=goods&a=add 意思是URL请求的是goods控制器里的add方法。

前台控制器设计

在上面的例子中index.php中是什么?在PHP框架中它被称为入口文件。这个文件通常都被命名为index.php,当然你也可以给它别的命名。这个index.php的最主要的作用就是作为HTTP请求的唯一入口文件,这样无论你的URL请求什么资源,它都必须通过这个Index.php来请求。你可能要问为什么,它是如何做到的?PHP中的前端控制器用到了Apache服务器的分布式配置.htaccess实现的。在这个文件中,我们可以使用重写模块告诉Apache服务器重定向到我们的index.php入口文件,就像下面这样:

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

# Send request via index.php

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

这个配置文件非常有用,还有当你重写这个配置文件的时候你不需要重启Apache。但是当你修改Apache的其他配置文件的时候你都需要重启Apache才能生效,因为Apache只有在启动的时候才会读取这些配置文件。

同时,index.php还会进行框架的初始化并且分发路由请求给对应的控制器和方法。

我们的MVC目录结构

现在让我们开始创建我们的框架目录结构。我们你可以随便先建立一个文件夹,命名为你项目的名称,比如:/bestshop。在这个文件夹下你需要建立下面的文件夹:

/application-存放web应用程序目录

/framework-存放框架文件目录

/public-存放所有的公共的静态资源,比如HTML文件,CSS文件和jJS文件。

index.php-唯一入口文件

然后在application文件夹下再建立下一级的目录

/config-存放应用的配置文件

/controllers-应用的控制器类

/model-应用的模型类

/view-应用的视图文件

现在在application/controllers文件夹下,我们还需要创建两个文件夹,一个frontend,一个backend:

同样的,在view下也建立frontend和backend文件夹:

就像你看到的,在application的controllers和view下面建立了backen和frontend文件夹,就像我们的用用有前台和后台功能一样。但是为什么不在model下也这样做呢?

Well, the reason here is, normally for a web app:是因为一般在我们的应用中,前台和后台其实是可以看做是两个“网站的”,但是CRUD操作的是同一个数据库,这就是问什么管理员更新了货物的价格的时候,前台用户可以马上看到价格的变化,因为前台和后台是共享一个数据库(表)的。所以在model中没必要再去建立两个文件夹。

:现在让我们回到framework文件夹中,一些框架的文件夹命名会用框架的名字命名,比如"symfony"。在framework中让我们快速建立下面的子目录:

/core-框架核心文件目录

/database-数据库目录(比如数据库启动类)

/helpers-辅助函数目录

/libraries-类库目录

现在进入public文件夹,建立下面的目录:

/css-存放css文件

/images-存放图片文件

/js-存放js文件

/uploads-存放上传的文件

OK。到目前为止这就是我们这个迷你的MVC框架的目录结构了!

时间: 2024-08-05 19:37:45

简单快速打造你自己的PHP MVC框架的相关文章

[转]1小时内打造你自己的PHP MVC框架

简介 MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架.虽然不能保证100%的开发语言都会使用框架,但是在PHP社区当中拥有*多数量的MVC框架.今天你或许还在使用Zend,明天你换了另一个项目也许就会转投Yii,Laravel或者CakePHP的怀抱.如果你刚开始使用一种框架,当你看它的源码的时候你会觉得一头雾水,是的,这些框架都很复杂.因为这些流行的框架并不是短时间之内就写出来就发行的,它们都是经过一遍又一遍的编写和测试加上不断的更新函

教你快速打造PHP MVC框架

简介 MVC框架在现在的开发中相当流行,不论你使用的是JAVA,C#,PHP或者IOS,你肯定都会选择一款框架.虽然不能保证100%的开发语言都会使用框架,但是在PHP社区当中拥有最多数量的MVC框架.今天你或许还在使用Zend,明天你换了另一个项目也许就会转投Yii,Laravel或者CakePHP的怀抱.如果你刚开始使用一种框架,当你看它的源码的时候你会觉得一头雾水,是的,这些框架都很复杂.因为这些流行的框架并不是短时间之内就写出来就发行的,它们都是经过一遍又一遍的编写和测试加上不断的更新函

Apache OFBIZ快速上手--MVC框架

继续上一篇博客,本篇博客介绍OFBiz的MVC框架. 1.OFBiz特点 OFBiz最主要的特点是OFBiz提供了一整套的开发基于Java的web应用程序的组件和工具.包括实体引擎.服务引擎.消息引擎.工作流引擎.规则引擎等. 2.关于OFBiz的版本以及文档 版本一直在更新,现在更新到13.0.7了. OFBiz的学习文档,少之又少,国内的文档都是过时了的,大多都是4.x的版本,国外的文档也很少.所以本博客都会将自己研究的OFBIZ的东西分享出来. 3.OFBiz的MVC框架 OFBiz采用的

MVC系列——MVC源码学习:打造自己的MVC框架(四:自定义视图)

前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾.对于这个系列,通过学习源码,博主也学到了很多东西,在此还是把博主知道的先发出来,供大家参考. 本文原创地址:http://www.cnblogs.com/landeanfen/p/6019719.html MVC源码学习系列文章目录: MVC系列——MVC源码学习:打造自己的MVC框架(一) MVC

简单快速将pdf转换成jpg的方法

如何将PDF转换成JPG呢?也许你将PDF转换成Word很轻松,但是到了PDF转换成JPG这里就要犹豫了,怎么转?网上找来找去还是PDF转换成JPG转换器,但是就为了一个格式下载一个软件,在工作中要遇到那么多的格式转换,那要下载多少个软件才行呢?别担心,这里小编教大家一个简单快速将pdf转换成jpg的方法. 迅捷PDF转换成JPG转换器是国家知名软件公司迅捷工作室研发而成,专门为上班一族打造的一款专业软件.它到底有怎样的优势呢? (一)它可以帮助您将PDF转换为的Word,PowerPoint,

基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器

一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市场快速变化的开发团队,以达到节省开发成本.缩短开发时间,快速适应市场变化的目的. AgileEAS.NET SOA中间件平台提供了敏捷快速开发软件工程的最佳实践,通过提供大量的基础支撑功能如IOC.ORM.SOA.分布式体系及敏捷并发开发方法所支撑的插件开发体系,以及提供了大量的实体.数据模型设计生

快速打造自己开发环境 vagrant + virtualbox

工欲善其事必先利其器,开发环境 和 开发工具 就是 我们开发人员的剑,所以我们需要一个快并且好用的剑 刚开始做开发的时候的都是把开发环境 配置在 自己的电脑上,随着后面我们接触的东西越来越多,慢慢的电脑上都是各种环境了,php,java,python,nodejs等等,非常麻烦,并且经常由于某种原因就把电脑重装了,ORZ,所以环境都要重来.所以打造一个属于自己并且可以移动的环境是非常重要的. vagrant就是一款构建虚拟开发环境的工具,支持window,linux,mac,总有一款适合你.并且

SNF快速开发平台3.0之--MVC 打印解决方案

SNF-MVC打印报表方案: 报表模块创建的过程如下: 利用Stimulsoft Reports客户端报表工具新增一个报表文件 *.mrt 当然你也可以拿好用的*.mrt模版文件进行复制出来一个,我常用这个方法. 按规定要求放于指定位置:Areas->Sys->Reports->BaseRole.mrt 打开对应的页面功能,点击打印即可,也可以在线编辑报表 第一步:配置打印按钮 第二步:配置打印方法 //打印 this.printClick = function () { snf.ope

自己动手写一个简单的MVC框架(第二版)

一.ASP.NET MVC核心机制回顾 在ASP.NET MVC中,最核心的当属“路由系统”,而路由系统的核心则源于一个强大的System.Web.Routing.dll组件. 在这个System.Web.Routing.dll中,有一个最重要的类叫做UrlRoutingModule,它是一个实现了IHttpModule接口的类,在请求处理管道中专门针对ASP.NET MVC请求进行处理.首先,我们要了解一下UrlRoutingModule是如何起作用的. (1)IIS网站的配置可以分为两个块: