【PHP】
苍穹0113
奇虎360服务器端资深开发,曾担任中国体育直播TV网站开发组长,网信集团先锋支付架构师,负责系统分布式架构设计,项目框架的搭建以及数据库的优化,企业类库的搭建与维护以及制定技术解决方案。擅长Golang、PHP、面向对象设计模式、Redis、Mysql、微服务等
展开
-
我的个人官方网站
姜海强的官方网站作者本人搭建了一个个人官方网站,内容和CSDN博客同步更新,欢迎客官就坐观看。https://404.360tryst.com/原创 2020-07-01 22:28:57 · 319 阅读 · 0 评论 -
PHP设计模式——迭代器模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 迭代器模式:迭代器模式是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。 UML类图: 角色: Itera原创 2015-06-08 22:08:41 · 5777 阅读 · 2 评论 -
PHP设计模式——中介者模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 中介者模式用一个中介者对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。 UML类图: 角色: 中介者接口(UnitedNations):在里原创 2015-06-09 21:40:49 · 3360 阅读 · 0 评论 -
PHP设计模式——模板模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。 UML类图:原创 2015-06-10 11:25:42 · 3339 阅读 · 0 评论 -
PHP设计模式——备忘录模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 备忘录模式又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 UML类图: 角色:原创 2015-06-10 10:26:16 · 2515 阅读 · 0 评论 -
PHP设计模式——状态模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 UML类图: 角色原创 2015-06-10 10:53:27 · 5494 阅读 · 0 评论 -
PHP设计模式——访问者模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 UML类图: 角色: 1.抽象访问者(State):为该对象结构中具体元素角色声明一个访问原创 2015-06-11 10:12:07 · 3907 阅读 · 2 评论 -
PHP设计模式——职责链模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 职责链模式(又叫责任链模式)包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。 UML类图: 角色:原创 2015-06-11 10:41:15 · 5660 阅读 · 4 评论 -
PSR-0
PSR-0:自动加载规范此规范已被弃用 - 本规范已于2014年10月21日被标记为弃用,目前最新的替代规范为 [PSR-4] 。本文是为自动加载器(autoloader)实现通用自动加载,所需要遵循的编码规范。规范说明一个标准的 命名空间(namespace) 与 类(class) 名称的定义必须符合以下结构: \\(\)*;其中Vendor Name为每个命名空间都必须要有的一个顶级命名空间名转载 2016-12-04 11:04:20 · 655 阅读 · 0 评论 -
PSR-1
基本代码规范本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以转载 2016-12-04 11:07:08 · 616 阅读 · 1 评论 -
PSR-2
代码风格规范本篇规范是 PSR-1 基本代码规范的继承与扩展。本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。当多名程序员在多个项目中合作时,就需要一个共同的编码规范, 而本文中的风格规范源自于多个不同项目代码风格的共同特性, 因此,本规范的价值在于我们都遵循这个编码风格,而不是在于它本身。关键词 “必须”("MUST")、“一定不可/一定转载 2016-12-04 11:08:26 · 723 阅读 · 0 评论 -
PSR-3
日志接口规范本文制定了日志类库的通用接口规范。本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。 框架以及CMS内容管理系统如有需要,可以对此接口进行扩展,但需遵循本规范, 这才能保证在使用第三方的类库文件时,日志接口仍能正常对接。关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、转载 2016-12-04 11:10:16 · 664 阅读 · 0 评论 -
PSR-7
HTTP消息接口本文档描述了在RFC 7230和RFC 7231中被描述来代表HTTP消息通用接口,以及在RFC 3986中规定的URIs语法。HTTP消息是Web开发的基础。Web浏览器和HTTP客户端之间,例如使用cURL创建一个发送到Web服务器的HTTP请求,Web服务器会返回一个HTTP响应。服务器端代码收到一个HTTP请求消息,并返回一个HTTP响应消息。HTTP消息通常对与最终的消费转载 2016-12-04 11:13:21 · 3298 阅读 · 0 评论 -
PSR-4
Autoloader关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 [RFC 21转载 2016-12-04 11:17:17 · 953 阅读 · 0 评论 -
基于yaf+yar微服务解决方案教程
基于yaf+yar微服务解决方案教程大纲主要内容[课程地址](https://edu.csdn.net/course/detail/9933)大纲主要内容课程地址原创 2019-04-01 10:46:09 · 1532 阅读 · 0 评论 -
php成长之路--1.composer下载依赖
composercomposer1.composer1.1 安装1.2 packagist[yaf+yar企业微服务解决方案](https://edu.csdn.net/course/detail/9933)composer1.composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你...原创 2019-05-25 11:57:56 · 1126 阅读 · 0 评论 -
PHP设计模式——命令模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式。原创 2015-06-04 20:54:23 · 2956 阅读 · 0 评论 -
PHP设计模式——观察者模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 UML类图: 重原创 2015-06-03 22:13:48 · 3957 阅读 · 0 评论 -
PHP设计模式——装饰器模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 装饰器模式又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 UML类图: 角色: 组件对象的接口:可以给这些对象动态的添加职责原创 2015-05-03 12:55:40 · 7413 阅读 · 0 评论 -
PHP设计模式——六大原则
声明:本系列博客参考资料《大话设计模式》,作者程杰。 一般认为遵从以下六大原则的代码是易扩展可复用的代码: 这六大原则任何面向对象的语言都应该遵守的,要想让你的代码易扩展高服用就尽量去满足这六大原则吧,不一定严格按照某种设计模式,但是如果你的代码符合这六大原原创 2015-04-06 23:18:54 · 7021 阅读 · 0 评论 -
PHP设计模式——简单工厂
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面两节内容介绍了什么是设计模式以及六大原则,相信看完前两节内容大家对设计模式已经有了初步的认识,接下来说一下设计模式的分类。 一般将面向对象设计模式分为三类:创建型、结构型、行为型三种。 创建型:创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创原创 2015-04-09 23:01:09 · 2777 阅读 · 0 评论 -
PHP设计模式——解释器模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 解释器模式:Given a language, define arepresentation for its grammar along with an interpreter that uses therepresentation to interpret sentences in the language。给定一个语言原创 2015-05-31 21:23:59 · 3035 阅读 · 0 评论 -
PHP设计模式——享元模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 UML类图:原创 2015-05-16 13:06:43 · 2973 阅读 · 1 评论 -
PHP设计模式——门面模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 门面模式(有时候也称外观模式)是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。 案例:炒股票,新股民不了解证券知识做股票,是很容易亏钱的,需要学习的知识太多了,这样新手最好把炒股的事情委托给基金公司,基金原创 2015-05-16 11:27:09 · 7172 阅读 · 0 评论 -
PHP设计模式——组合器模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 组合模式(有时候又叫做部分-整体模式),将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 实现类原创 2015-05-02 22:03:09 · 2153 阅读 · 0 评论 -
PHP设计模式——适配器模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的(适配器模式要解决的核心问题)。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 类图: 待适配(ForeignPlayer)角色原创 2015-04-26 13:49:16 · 1957 阅读 · 1 评论 -
PHP设计模式——桥接模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 桥接模式:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?这就要使用桥接模式——将抽象部分与它的实现部分分离,使他们可以独立地变化。 UML类图: 角色介绍: 抽原创 2015-05-02 20:03:18 · 3760 阅读 · 1 评论 -
PHP设计模式——建造者模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。 例如:汽车,他的发动机引擎有好多品牌,轮胎也有各种材质,内饰更是千奇百怪;鸟,他的头、翅膀以及脚有各种颜色和形状,在创建这种复杂对象的时候,我们建原创 2015-04-25 11:30:51 · 6190 阅读 · 1 评论 -
PHP设计模式——单例模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在双重验证。 懒汉式具体代码:原创 2015-04-21 22:16:55 · 2303 阅读 · 1 评论 -
PHP设计模式——策略模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,即封装变化的算法。 适用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。原创 2015-05-16 22:15:29 · 8876 阅读 · 1 评论 -
PHP设计模式——原型模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化原创 2015-04-25 20:59:30 · 4190 阅读 · 0 评论 -
PHP设计模式——抽象工厂
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面我们介绍了简单工厂和工厂方法设计模式,今天我们学习最后一个工厂——抽象工厂。 案例:追MM少不了请吃饭了,去麦当劳,只管向服务员说“两个B套餐”就行了。麦当劳就是B套餐的AbstractFactory,B套餐里含有汉堡, 鸡翅和饮料. 麦当劳或肯德基会根据B套餐的规格, 让汉堡Fact原创 2015-04-19 19:05:29 · 2785 阅读 · 0 评论 -
PHP设计模式——工厂方法
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面我们介绍了简单工厂,今天我们继续学习另外一个工厂——工厂方法。 具体案例:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我们一般采用FactoryMethod模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员原创 2015-04-16 22:37:35 · 2354 阅读 · 0 评论 -
PHP设计模式——代理模式
声明:本系列博客参考资料《大话设计模式》,作者程杰。 代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 UML类图: 角色介绍: 抽象主题角色(IGiveGift):原创 2015-05-16 18:03:12 · 6306 阅读 · 0 评论 -
PHP设计模式——概述
声明:本系列博客参考资料《大话设计模式》,作者程杰。 常见的面向对象设计模式大约有23种,但是自从接触PHP后,渐渐发现常见的设计模式好像少了很多,网络上的资料也比较少,身边的PHP同事们有的甚至没有听说过设计模式,这也有可能是PHP的发展所带来的,因为PHP对面向对象支持的比较晚,好多PHP程序员还按照面向过程的思想写代码。于是,我决定把原来用C#写的原创 2015-04-06 22:15:14 · 3136 阅读 · 0 评论