自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zuimei_forver的博客

知其然知其所以然

  • 博客(31)
  • 收藏
  • 关注

原创 分页类的使用

在项目中难免用到分页类,下面介绍我使用的分页类及使用流程。流程:1. 引入分页类2.设置记录总数和每页总数,实例化分页类3.设置查询语句sql,执行sql得到结果集4.设置分页的底栏代码: //1.得到记录总数 $model_manager = M('Manager'); $count = $model_manager->count(); //2.

2015-12-29 14:23:53 327

原创 php生成验证码

//生成验证码 public function checkCode() { $width = 100; $height= 30 ; //创建画布,默认背景颜色为黑色 $img = imagecreatetruecolor($width, $height); //指定字符串 $str = $this->randomString(4); //

2015-12-28 16:35:37 341

转载 InnoDB创建数据压缩页

从MySQL5.5版本开始支持InnoDB数据页压缩,数据页的压缩使数据文件体积变小,减少磁盘I/O,提高吞吐量,小成本地提高了CPU利用率。尤其是对读多写少的应用来说最为有效,同样的内存可以存储更多的数据,充分地“榨干”内存利用率。工作原理:当用户获取数据时,如果压缩的页没有在缓冲池中,那么就会从磁盘加载进去,并且会在缓冲池里开辟一个新的未压缩的16KB的数据页来解压缩,为了减少磁盘I/O以

2015-12-27 10:18:52 583

原创 InnoDB缓存池介绍

InnoDB会在内存中维护一个缓冲池,用于缓存数据和索引。缓冲池分为两个区域,一个是sublist of new blocks区域(经常被访问的数据-热数据),一个是sublist of old blocks区域(不经常访问的数据)。当用户访问数据时,如果缓冲区里有相应的数据则直接返回,否则会从磁盘读数据到缓冲区的sublist of old blocks区域,然后在移动到sublist of

2015-12-25 11:17:30 2099

原创 设计模式之享元模式

定义:运用共享技术有效地支持大量细粒度的对象。角色:抽象享元类(Flyweight):所有具体享元类的超类或接口,通过这个接口,Flyweight可以接受并作用于外部状态。具体享元类(ConcreteFlyweight):继承Flyweight超类或实现Flyweight接口,并为内部状态增加存储空间。不共享具体享元类(UnsharedConcreteFlyweight

2015-12-24 09:41:10 374

原创 设计模式之中介者模式

定义:用一个中介对戏那个来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。角色:抽象同事类(Colleague):对交互对象的抽象具体同事类(ConcreteColleague):每个具体同事类只知道自己的行为,而不了解其他同事类的情况,但都认识中介者对象抽象中介者(Mediator):定义了同事对象到中介者

2015-12-24 09:20:20 264

原创 BootStrap插件使用之模态框

构建模态框会使用到的class、属性和方法如下:类:.modal 将div内容识别为模态框(必须)。.fade 模态框被切换时,让内容淡入淡出;.modal-dialog将div作为模态对话框;.modal-content该div包含模态框具体内容;.modal-header定义模态框的头部样式.modal-body定义模态框的主体样式.mo

2015-12-23 18:56:29 461

原创 兼容获取页面窗口和滚动的大小

//获取视窗宽度 function getClientWidth(){ var pageWidth = window.innerWidth; if(typeof pageWidth != "number") if(document.compatMode == "CSS1Compat"){ pageWidth = document.documentElement.client

2015-12-23 16:33:46 274

原创 设计模式之命令模式

定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。角色:抽象命令类(Command):用来声明执行操作的接口;具体命令类(ConcreteCommand):将一个接收者对象绑定于一个动作,调用接收者相应的操作;命令调用者(Invoker):要求该命令执行这个请求;命令接收者(Receiver):知

2015-12-23 11:10:19 253

原创 设计模式之桥接模式

定义:将抽象部分与它的实现部分分离,使他们都可以独立地变化。UML图:总结:桥接模式中使用到了合成/聚合复用原则(尽量使用合成/聚合,尽量不要使用类继承)。聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分;合成则是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期是一样的。合成/聚合复用原则的好处是,优

2015-12-23 10:27:11 336

原创 设计模式之单例模式

定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。角色:单例类:由私有静态实例对象、私有化的构造函数和静态获取实例函数三部分组成。UML图:总结:单例模式因为Singleton类封装它的唯一实例,这样他就可以严格地控制客户怎样访问它以及何时访问它。就是对唯一实例的受控访问。

2015-12-22 09:45:37 302

原创 设计模式之迭代器模式

定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。角色:迭代抽象类:用于定义得到开始对象,得到下一个对象、判断是否到结尾、当前对象等抽象方法,统一接口。具体迭代器类:继承迭代抽象类,实现开始、下一个、是否结尾、当前对象等方法。聚集抽象类:有一个创建迭代器的接口;具体聚集类:继承自聚集抽象类,实现创建迭代器的接口。UML图:

2015-12-22 09:30:25 374

原创 ECharts获取后台json数据

ECharts给的实例中,数据都是固定的,如果想要动态绑定数据,就需要从后台查询,然后返回数据给echarts来生成图表。本文以柱状图为例,介绍了前台如何获取后台返回的数据,来显示图表的流程。本文分为前台和后台两部分叙述:前台:1. 为图标的显示声明一个具有宽高的DOM元素2. 引入echarts主文件,同时引入jquery包,用于发送ajax请求到后台3. 为模块加载器配

2015-12-21 15:23:47 27015 3

原创 设计模式之组合模式

定义:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。角色:Component:为组合中的对象声明接口,在适当情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component的子部件。Leaf:在组合中表示叶结点对象,叶结点没有子节点。Composite:定义有枝节点行为,用来存储子部件,在Co

2015-12-21 10:34:58 423

原创 设计模式之备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。角色:发起人(Originator):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。备忘录(Me

2015-12-21 10:14:10 337

原创 设计模式之适配器模式

定义:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。角色:Target:客户所期待的接口,可以是具体或抽象的类,也可以是接口。Adaptee:需要适配的类;Adapter:通过在内部包装一个Adaptee对象,把源接口转换成目标接口。UML图:总结:当两个类都不容易修改的时

2015-12-21 09:59:37 265

原创 设计模式之职责链模式

定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。角色:抽象处理者:定义一个处理请示的接口。具体处理者:处理它所负责的请求,可访问它的后继者,如果可以处理请求,就处理;否则,将该请求转发给它的后继者。UML图:总结:职责链模式使得接收者和发送者

2015-12-21 09:49:57 304

原创 设计模式之状态模式

定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。角色:抽象状态类:定义了一个接口以封装与Context的一个特定状态相关的行为。具体状态类:实现一个与Context状态相关的行为。Context类:维护一个具体状态类实例,这个实例定义了当前的状态。UML图:总结:状态模式主要解决的是当控制一个对象状态转换的条

2015-12-21 09:34:28 273

原创 设计模式之观察者模式

定义:观察者模式又称为发布-订阅模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。角色:抽象通知者(Subject):把所有对观察者的引用保存在一个聚集里,每个通知者都可以有任意数量的观察者。抽象观察者一般用一个抽象类或接口实现,同时有增加和删除观察者对象的方法。具体通知者

2015-12-20 15:38:54 314

原创 设计模式之建造者模式

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。角色:抽象构建者(Builder):为创建一个对象的各个部件指定的抽象接口。具体构建者(ConcreteBuilder):实现Builder接口,构造和装配各个部件。具体产品(Product):创建的复杂对象。UML图:总结:建造者模式主要用于创建一些复杂的对象,这些对象内部构建间的

2015-12-20 15:16:08 259

原创 设计模式之六大原则

1. 单一职责原则就一个类而言,应该仅有一个引起变化的原因。即一个类只负责一项职责。职责扩散:因为某种原因,职责p被分化为粒度更细的职责p1和p2,就可以会违背单一职责原则。遵循单一职责原则的优点:可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多。提高类的可读性,提高系统的可维护性;变更引起的风险降低,变更是必然的。如果单一职

2015-12-19 15:00:57 258

原创 设计模式之外观模式

定义:外观模式又称为门面模式,它为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。角色:外观类(Facade):保存对子系统的引用,将客户的请求代理给适当的子系统对象。子系统类:处理外观类指派的任务,子类中是没有外观类的引用。UML图:总结:外观模式避免了客户端直接与子系统的交互,使用外观类作为中间协调者,这符合了

2015-12-19 14:58:32 239

原创 设计模式之模板方法模式

定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。角色:抽象类:就是抽象模板,定义并实现了一个模板方法。给出了顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类中实现。具体类:实现父类所定义的一个或多个抽象方法。UML图:总结:模板方法模式就是通过把不变行为搬到超类,

2015-12-19 14:10:25 215

原创 设计模式之原型模式

定义:用原型实例指定创建对象的种类,并且通过拷贝这些对象创建新的对象。角色:原型类(Prototype):声明一个克隆自身的接口;具体原型类:继承自原型类,实现原型类的克隆接口。UML图:注:原型模式就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。但是在使用原型模式时,需要注意浅复制与深复制的问题。如果字段是值类型的,则对该字段执行逐位复制;

2015-12-19 13:31:49 241

原创 设计模式之代理模式

定义:为其他对象提供了一种代理,以控制对这个对象的访问。角色:抽象实体类(Subject):定义了实体类和代理的公用接口;实体类(RealSubject):需要控制访问的实体对象即代理的对象;代理类(Proxy):控制对实体的访问,在代理类中保存一个对实体的引用,以便调用实体对象的接口。UML图:适用场景:1.远程代理:为一个对象在不同的地址空间提供局部

2015-12-18 21:01:06 356

原创 设计模式之装饰模式

定义:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。角色:对象接口(Component):可以用来动态添加职责的对象;具体对象(ConcreteComponent):具体的对象,可以给这个对象添加一些职责。(如果对象不需要扩展,具体对象就不需要了)装饰抽象类(Decorator):继承自Component,从外类来扩展Component类的功能。

2015-12-18 09:35:04 317

原创 PHP中日期的获取及转换

根据字符串得到DateTime对象1. 使用DateTime构造函数如:$date = new DateTime('2015-12-08 14:28:30');想得到当前日期: $date = new DateTime('now');2. 使用createFromFormat如:$date = DateTime::createFromFormat('Y-

2015-12-08 14:39:32 485

原创 获取网络上歌曲下载链接

最近做了一个demo,可以根据百度mp3接口获取歌曲的链接。在做的过程中,参考了以下两篇博文,写的很不错。http://mrasong.com/a/baidu-mp3-api百度mp3接口http://mrasong.com/a/baidu-mp3-api-full[新]百度mp3接口下面附上我的demo: class Music{ //只获取其中一条数据返回 //$q

2015-12-07 13:49:37 791

原创 tp框架中空操作和空控制器处理方法

根据tp3.2版本参考手册来看,针对空操作需要在对应控制器内定义_empty方法;针对空控制器,需要定义EmptyController控制器,同时该控制器内需要添加_empty函数。空操作    //方法为空时,进入此函数    public function _empty()    {        //可以自己处理,跳转到相应链接        $this->r

2015-12-07 13:05:00 3217

原创 外网访问apache下网站的问题

今天使用外网访问apache下一个网站时,不管输入什么网址,都显示下面一个内容:在网上查找方法时,说将httpd.conf中Allow from 127.0.0.1改为Allow from all,这里我早就改过了,所以排除这个问题;还有关闭防火墙也试了,不行;最后猜想可能是虚拟主机配置文件的问题,所以选择不加载httpd-vhosts.conf文件,即在httpd.conf注释这句话

2015-12-04 20:14:49 405

转载 简单工厂模式、工厂模式以及抽象工厂模式

简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别结合简单示例和UML图,讲解工厂模式简单原理。 一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。你

2015-12-04 13:32:59 466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除