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负责请求的转发和 ...
随机推荐
- 通过iostat来查看linux硬盘IO性能|实例分析
iostat查看linux硬盘IO性能 rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目.即 delta(wm ...
- Python变量的作用域
局部变量 局部变量是指在函数内部定义并使用的变量,他只在函数内部有效.即函数内部的名字只在函数运行时才会创建,在函数运行之前或者运行完毕之后,所有的名字就都不存在了.所以,如果在函数外部使用函数内部定 ...
- AI-解析器-request.data内部如何按照自定义解析格式-解析数据
QUESTION:post方法中调用request.data方法时,当在Courseview类中添加parser_classes=[ForParser,],就可以将数据解析成parser_classe ...
- JavaBean toString() - 将bean对象打印成字符串
JavaBean toString方式 https://www.cnblogs.com/thiaoqueen/p/7086195.html //方法一:自动生成 @Override public St ...
- 清北合肥day2-day5
day2:215这一天的题目相对比较模板化t1:50看错了数据范围求n个点到给出的点哈夫曼距离的最小值我想到的是一种非常zz的做法我们二分答案,然后判断是否在这个距离内有点但是这样前缀和不是很好维护于 ...
- react添加样式的四种方法
React给添加元素增加样式 第一种方法: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- BZOJ3295 [Cqoi2011]动态逆序对 分治 树状数组
原文链接http://www.cnblogs.com/zhouzhendong/p/8678185.html 题目传送门 - BZOJ3295 题意 对于序列$A$,它的逆序对数定义为满足$i< ...
- CF552 E. Two Teams
题意:给出一串n个数 为1-n的乱序 一共有两个教练 教练一的队伍是1队 二是二队 教练一选择 当前队列中剩余人数的最大序号 将其和左边k个人 和右边k个人 变为一队 如此反复直到所有人 ...
- MySQL高级01
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB. 官网下载地址:http://dev.mysql.com/downloa ...
- 048 SparkSQL自定义UDAF函数
一:程序 1.需求 实现一个求平均值的UDAF. 这里保留Double格式化,在完成求平均值后与系统的AVG进行对比,观察正确性. 2.SparkSQLUDFDemo程序 package com.sc ...