制作自己的MVC框架(三)——应用
一、数据库操作
目前封装了两种数据库,“MongoDB”和“MySQL”,用到了一次接口“IDatabase.php”。
namespace library\db;
interface IDatabase {
public function connect($database);
}
为了方便增删改查,给两种数据库封装了统一的方法,query、getCount、add、getRowById等。
将demo用的数据库文件放在了“db”内。
二、辅助函数、常量与字典
1)辅助函数
这个是参考了CI后加进来的,有时候老是初始化某个类再调用很不方便,直接是函数的话,引用就快捷。
目前就三个,文件、正则和域名的操作,里面也没几个方法,可扩展。
2)常量与字典
常量的应用,例如订单的状态,可以用数字1,2或3等,而如果直接赋这种数字,不容易理解,并且万一修改了一个状态意义。
那就有潜在危险了,可能赋值比较分散,不能完全修改过来。
但如果作为一个变量预先设置好,即使改了也没关系,只是层引用关系。
class ConstEnum {
const Status_Normal = 1;
const Status_Delete = 0;
//字典
public static $Enum_Select = [
['1'=>'正常'],
['0'=>'错误']
];
}
而字典的话,例如订单状态的下拉框,直接引用这个字典再输出,比每次都重新设置要快捷许多。
三、工具类
框架中会有许多工具类,例如分页、Session、过滤、Curl等。我这边就简单的封装了几个而已。
其中“Weixin”开头的两个文件是专门用于微信开发的,曾经写过四篇文章,专门讲《微信开发》。
四、控制器
1)类库
“core/Controller.php”中做的是核心工作,渲染模版、返回JSON数据等。
“controller/Web.php”是某个业务中的通用控制器,继承自“Controller.php”中。
2)项目
app中可以包含多个项目,例如下面的“admin”和“weixin”,包含多个项目可以复用“library”中的代码。
在“weixin”文件夹中包含了四个文件夹。
1. “conf”是配置文件,前面说过的,三种环境有三种配置。
2. “controllers”中是控制器,命名我做了规定,一定要“Controller”结尾。
3. “layouts”是通用模版,例如head、footer等部分,很多页面可以复用。
4. “views”中就是视图了。
除了这些,还有“third”第三方库的引入,“service”通用业务逻辑的封装。
如果要封装自己的业务层,其实就是新加一个文件夹而已。
以上这些也只是按照我的思路做的封装,都是对第一篇文章《粗暴的实现》的扩展。
框架下载:
https://github.com/pwstrick/PrimusPHP
制作自己的MVC框架(三)——应用的更多相关文章
- 从零开始实现一个简易的Java MVC框架(三)--实现IOC
Spring中的IOC IoC全称是Inversion of Control,就是控制反转,他其实不是spring独有的特性或者说也不是java的特性,他是一种设计思想.而DI(Dependency ...
- 制作自己的MVC框架(一)——简单粗暴的实现
现在市面上有很多成熟的MVC框架,可以拿来直接用,但自己造一下轮子其实也挺有意思的. 下面先来看个最简单粗暴的MVC实现. 5个文件就能实现最简单的MVC,在Apache中设置一个虚拟目录,配置个简单 ...
- 制作自己的MVC框架(二)——启动
自己写了个框架,取名为“PrimusPHP”,就3个文件夹,log中是日志文件,会自动生成. app中就是控制器和视图,public中是入口文件和静态资源,library中既有框架的核心类,还有工具类 ...
- IceMx.Mvc 我的js MVC 框架 三、动手来写一个评论模块儿
介绍 本人菜鸟,一些自己的浅薄见解,望各位大神指正. 本框架有以下优点 1.简单(调用简单.实现简单.不过度设计) 2.视图.控制器.模型分离(分离对于维护十分有必要) 3.组件化(每一个mvc模块儿 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
- 自己写一个java的mvc框架吧(三)
自己写一个mvc框架吧(三) 根据Method获取参数并转换参数类型 上一篇我们将url与Method的映射创建完毕,并成功的将映射关系创建起来了.这一篇我们将根据Method的入参参数名称.参数类型 ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(1)
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法. ...
- MVC框架入门准备(三)事件类 - 事件的监听和触发
在mvc框架中可以看到事件类,实现事件的监听和触发. 举例: <?php /** * 事件类 */ class Event { // 事件绑定记录 private static $events; ...
随机推荐
- JavaWeb——Filter
一.基本概念 之前我们用一篇博文介绍了Servlet相关的知识,有了那篇博文的知识积淀,今天我们学习Filter将会非常轻松,因为Filter有很多地方和Servlet类似,下面在讲Filter的时候 ...
- 查看w3wp进程占用的内存及.NET内存泄露,死锁分析
一 基础知识 在分析之前,先上一张图: 从上面可以看到,这个w3wp进程占用了376M内存,启动了54个线程. 在使用windbg查看之前,看到的进程含有 *32 字样,意思是在64位机器上已32位方 ...
- 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?
引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- 微框架spark--api开发利器
spark简介 Spark(注意不要同Apache Spark混淆)的设计初衷是,可以简单容易地创建REST API或Web应用程序.它是一个灵活.简洁的框架,大小只有1MB.Spark允许用户自己选 ...
- java中if和switch哪个效率快
首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- css样式之background详解
background用法详解: 1.background-color 属性设置元素的背景颜色 可能的值 color_name 规定颜色值为颜色名称的背景颜色(比如 red) he ...
- HTML 5 应用程序缓存manifest
什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏 ...
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...