MVC微型框架---------学习
1、单一入口机制 是指在web程序中 所有的请求都指向一个脚本文件
2、工厂模式的概念精髓:工厂类就是对类的封装,类是对方法的封装,方法是对实现过程的封装
调用当前类的静态方法,规范的写法是使用 self 而非 $this。
/3、esc下的按键`的作用是防止sql语句中 表名,字段名等 出现SQL关键词 而引起冲突的情况
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
$keys = '`' . implode('`,`', array_keys($data)) . '`';
$values = '`' . implode('`,`', array_values($data)) . '`';
$sql = "INSERT INTO {$table}( {$keys} )VALUES( {$values} )";
4、extract($config);//extract() 函数使用数组键名作为变量名,使用数组键值作为变量值,将数组(必须为关联数组)拆分成变量.
function connect($config){}数据库连接函数
mysql操作类:
1.报错函数
die()//die有两种做用输出和终止相当于echo与exit的结合
5、findAll查找多条语句封装,用mysql_fetch_accoss也可行 把查询的所有行列的结果打包成一个数组
从资源处取出一条数据信息作为数组,所以不用while循环,也可以mysql_fetch-assoc
mysql_resule返回结果集中指定行和指定字段(或偏移量)的值
6、解决问题的方法:完善MVC架构
1.封装数据操作,
2.研发微型框架系统,封装视图引擎,DB引擎。
原先面向过程与MVC之间对比问题总结
7、框架组织结构
1、函数库(重复用):不能归类的方法,全放到function文件(零散方法)。
2、类库
①视图引擎库(smarty)。
②DB引擎库(封装的数据库类class db)。
③核心库(工厂封装的static DB和static smarty重复用)。
3、require文件清单
4、启动引擎程序
8、header("Content-type: text/html; charset=utf-8");
//url形式 index.php?controller=控制器名&method=方法名
// 调用配置文件
require_once('config.php');
// 调用微型框架
require_once('framework/pc.php');
// 启动框架引擎
PC::run($config);
9、微框架提供给我们
1扩展便利
2全自动,半自动
3统一配置借口
10、
1.业务逻辑全写入model层
2.大事化小,分而治之
过长、过复杂的方法要拆分成若干个方法
能公用的代码码段要分出来单独写一个方法
拥有太多方法的model层,可独立出一个新的model层
3.相似功能合二为一
例如新闻发布、修改功能,模板、模型、控制器都用同一个
11、控制器层不书写任何业务处理程序,只负责各个model和view之间的协调调用(总概全局方法)。业务逻辑的具体实现在模型层!模型层根据相应的方法进行方法的细化,避免代码量过长而导致逻辑不清晰。
MVC微型框架---------学习的更多相关文章
- PHP之MVC微型框架简单搭建
好长时间没有写博客了,这段时间过得紧张的不行,以致于都没有抽出时间来好好的总结一下自己这段时间的生活和学习. 其实今天不想写什么技术博客,就想简单总结一下这段时间的生活.10月8号从家里回来以后决定自 ...
- php源码建博客4--实现MVC结构微型框架
主要: 常量优化路径 自动加载类 优化入口文件 安全访问项目目录 --------------文件结构:-------------------------------------- blog├─App ...
- MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)
前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...
- 精通ASP.Net MVC 3 框架(第三版)学习笔记
精通ASP.Net MVC 3 框架(第三版)学习笔记 代码才是王道. http://pan.baidu.com/s/1pJyL1cn
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2): ...
- Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)
与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...
随机推荐
- Chrome开发者控制台操作教程
1清空控制台 在控制台下有个clear console的按钮,点击的时候会清空控制台. 清空控制台 2让Chrome中的页面可编辑 有的时候我们需要临时改变页面上的文字,图案等信息,一种常见的方法是 ...
- python 把类当作 装饰器
# class Test(object): # def __call__(self): # print('-----test----') # t= Test()# t() 调用主要有个__call__ ...
- exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
1.虽然,不是大错,还说要贴一下,由于我运行run-example streaming.NetworkWordCount localhost 9999的测试案例,出现的错误,第一感觉就是Spark没有 ...
- 1.RN环境搭建,创建项目,使用夜神模拟调试
1.环境搭建(Yarn.React Native 的命令行工具(react-native-cli)) npm install -g yarn react-native-cli 具体参考 参见官方(中文 ...
- Flink-- 数据输出Data Sinks
flink在批处理中常见的sink 1.基于本地集合的sink(Collection-based-sink) 2.基于文件的sink(File-based-sink) 基于本地集合的sink(Coll ...
- 企业级代码托管Gitlab
Gitlab概述: 一个利用Ruby on Rails开发的开元应用程序,从而实现一个代码托管项目仓库,可以通过web界面进行访问公开的或者私有的项目 Ruby on Rails是一个可以使开发,部署 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- CodeForces 516B Drazil and Tiles 其他
原文链接http://www.cnblogs.com/zhouzhendong/p/8990658.html 题目传送门 - CodeForces 516B 题意 给出一个$n\times m$的矩形 ...
- netty04(重点来了、指定某个客户端发信息或者群发)小声嘀咕~~我也是从零开始学得、、、想学习netty的又不知道怎么下手的童鞋们~~
还是和上几篇一样,先给出前面笔记的连接,有没看的可以去看看再来! netty01 . netty02 .netty03 看到这里.你基本上可以使用netty接受信息和根据对应的信息返回信息了 接 ...
- Cforeach的详细用法--【转】
运行截图: <!-- 多选框-还需要实现true选中和分行 --> <c:forEach items="${users}" var="item" ...