摘要: (1)mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集使用方法如下:$sql = "select count(*) as ctr from users where username='".mysql_real_escape... 阅读全文
posted @ 2015-04-10 17:01 zhhtao 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 浅谈php web安全转自:http://blog.csdn.net/initphp/article/details/8054795前言:首先,笔记不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重 视的东西。所以笔者写下... 阅读全文
posted @ 2015-04-10 16:41 zhhtao 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 策略模式:策略模式设计帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。使用场景:例如有一个CD类,我们类存储了CD的信息。原先的时候,我们在CD类中直接调用getCD方法给出XML的结果随着业务扩展,需求方提出需要JSON数据格式输出这个时候我们引进了策略模式,可以让使用方根据... 阅读全文
posted @ 2015-04-10 15:16 zhhtao 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 观察者模式观察者设计模式能够更便利创建和查看目标对象状态的对象,并且提供和核心对象非耦合的置顶功能性。观察者设计模式非常常用,在一般复杂的WEB系统中,观察者模式可以帮你减轻代码设计的压力,降低代码耦合。场景设计设计一个订单类订单创建完成后,会做各种动作,比如发送EMAIL,或者改变订单状态等等。原... 阅读全文
posted @ 2015-04-10 15:15 zhhtao 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 中介者模式中介者模式用于开发一个对象,这个对象能够在类似对象相互之间不直接相互的情况下传送或者调解对这些对象的集合的修改。一般处理具有类似属性,需要保持同步的非耦合对象时,最佳的做法就是中介者模式。PHP中不是特别常用的设计模式。设计场景:我们有一个CD类和一个MP3类,两个类的结构相似。我们需要在... 阅读全文
posted @ 2015-04-10 15:13 zhhtao 阅读(144) 评论(0) 推荐(0) 编辑
摘要: PHP迭代器:可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据。(不是特别常用,在PHP中)使用场景:1.访问一个聚合对象的内容而无需暴露它的内部表示。2.支持对聚合对象的多种遍历。3.为遍历不同的聚合结构提供一个统一的接口(即,多态迭代)。PHP代码实现: v... 阅读全文
posted @ 2015-04-10 15:11 zhhtao 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 解释器模式解释器模式 用于分析一个实体的关键元素,并且针对每个元素提供自己的解释或相应动作。解释器模式非常常用,比如PHP的模板引擎 就是非常常见的一种解释器模。代码: '; public function run($str) { ... 阅读全文
posted @ 2015-04-10 15:07 zhhtao 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 外观模式通过在必需的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了调用对象的复杂性。外观设计模式和建造者模式非常相似,建造者模式一般是简化对象的调用的复杂性,外观模式一般是简化含有很多逻辑步骤和方法调用的复杂性。应用场景设计一个User类,里面有getUser获取用户信息接口在使用getU... 阅读全文
posted @ 2015-04-10 15:05 zhhtao 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 委托模式通过分配或委托其他对象,委托设计模式能够去除核心对象中的判决和复杂的功能性。应用场景设计了一个cd类,类中有mp3播放模式,和mp4播放模式改进前,使用cd类的播放模式,需要在实例化的类中去判断选择什么方式的播放模式改进后,播放模式当做一个参数传入playList函数中,就自动能找到对应需要... 阅读全文
posted @ 2015-04-10 15:02 zhhtao 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 什么是装饰器装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设应用场景设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息通过addUser来添加用户名getUserList方法将打印出用户名信息现在需要将添加的用户信息变成大写的,我... 阅读全文
posted @ 2015-04-10 15:00 zhhtao 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 数据访问对象模式数据访问对象模式描述了如何创建透明访问数据源的对象。场景设计设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法在实际使用的过程中,继承BaseDao,就可以直接调用基类的数据库操作方法代码:BaseDao 数据库操作基类 db = m... 阅读全文
posted @ 2015-04-10 14:53 zhhtao 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 什么是建造者模式建造者模式主要是为了消除其它对象复杂的创建过程。设计场景有一个用户的UserInfo类,创建这个类,需要创建用户的姓名,年龄,金钱等信息,才能获得用户具体的信息结果。创建一个UserInfoBuilder 用户建造者类,这个类,将UserInfo复杂的创建姓名,年龄,金钱等操作封装起... 阅读全文
posted @ 2015-04-10 14:50 zhhtao 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 什么是适配器:适配器设计模式只是将某个对象的接口适配为另一个对象所期望的接口。设计情景:假如我们原始的有一个UserInfo的类,提供用户信息的类,早起设计该类的时候,只实现了一个getUserName获取用户名的方法。我们的MyOldObject类中,将从UserInfo这个类中获取用户信息,并且... 阅读全文
posted @ 2015-04-10 14:44 zhhtao 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 工厂模式提供获取某个对象实例的一个接口,同时使调用代码避免确定实例化基类的步骤。工厂模式 实际上就是建立一个统一的类实例化的函数接口。统一调用,统一控制。工厂模式是php项目开发中,最常用的设计模式,一般会配合单例模式一起使用,来加载php类库中的类。应用场景我们拥有一个Json类,String类,... 阅读全文
posted @ 2015-04-10 14:33 zhhtao 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 单例模式通过提供自身共享实例的访问,单例设计模式用于限制特定对象只能被创建一次。使用场景例如数据库实例,一般都会走单例模式。单例模式可以减少类的实例化代码:来源InitPHP框架,先检测类有没被实例化,实例化了就使用已经存放在静态变量中的对象实例,没有则实例化并将对象保存起来。 /** ... 阅读全文
posted @ 2015-04-10 14:28 zhhtao 阅读(131) 评论(0) 推荐(0) 编辑