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微型框架---------学习的更多相关文章

  1. PHP之MVC微型框架简单搭建

    好长时间没有写博客了,这段时间过得紧张的不行,以致于都没有抽出时间来好好的总结一下自己这段时间的生活和学习. 其实今天不想写什么技术博客,就想简单总结一下这段时间的生活.10月8号从家里回来以后决定自 ...

  2. php源码建博客4--实现MVC结构微型框架

    主要: 常量优化路径 自动加载类 优化入口文件 安全访问项目目录 --------------文件结构:-------------------------------------- blog├─App ...

  3. MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)

    前言:上篇介绍了下自己的MVC框架前两个版本,经过两天的整理,版本三基本已经完成,今天还是发出来供大家参考和学习.虽然微软的Routing功能已经非常强大,完全没有必要再“重复造轮子”了,但博主还是觉 ...

  4. MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)

    前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...

  5. MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)

    前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...

  6. MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)

    前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...

  7. 精通ASP.Net MVC 3 框架(第三版)学习笔记

    精通ASP.Net MVC 3 框架(第三版)学习笔记 代码才是王道. http://pan.baidu.com/s/1pJyL1cn

  8. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2): ...

  9. Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

随机推荐

  1. C++ 使用system()实现锁定屏幕

    除了使用函数“LockWorkStation()”实现锁定屏幕,参考:http://www.cnblogs.com/Satu/p/8183081.html 此外,也可以使用函数“system()”来实 ...

  2. easyui之自定义字体图标(鼠标覆盖时切换颜色)

    项目要求是自定义字体图标,使用easyui框架结构,众所周知easyui强功能弱样式,字体图标其实就是一张图片.要达到切换图标颜色的效果,要么就是有两套图,使用js控制.但是我这个人比较懒,不喜欢做复 ...

  3. shell 判断目录是否存在

    判断/data/www/logs/wos_log/crontab_log是否, 如果不存在则新建 if [ ! -d "/data/www/logs/wos_log/crontab_log& ...

  4. 【C++ Primer | 07】常用算法

    第一部分 常用泛型算法: find(beg, end, val); equal(beg1, end1, beg2); fill(beg, end, val); fill_n(beg, cnt, val ...

  5. [转] Mongoose初使用总结

    连接mongoose mongoose连接数据库有两种方式 第一种: 'use strict'; const mongoose = require('mongoose'); mongoose.conn ...

  6. mysql的下载与安装

    官网 下载 https://www.mysql.com/ 依次点击:downloads>community>mysql community server,如图所示   image.png ...

  7. Java基础知识➣集合整理(三)

    概述 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个层次. 实现(类) ...

  8. A - Points and Segments CodeForces - 429E

    题解: 方法非常巧妙的一道题 首先考虑要求全部为0怎么做 发现是个欧拉回路的问题(很巧妙) 直接dfs一遍就可以了 而这道题 要求是-1,1,0 我们可以先离散化 完了之后判断每个点被奇数还是偶数条边 ...

  9. Theorems for existence and uniqueness of variational problem

    Introduction Among simulation engineers, it is well accepted that the solution of a PDE can be envis ...

  10. Python_二维数组

    例1:将数组旋转90度 a = [[i for i in range(4)] for n in range(4)] print(a) # 遍历大序列 for a_index, w in enumera ...