分类:推荐文章

composer autoload 自动加载性能优化指南

composer 提供的 autoload 机制使得我们组织代码和引入新类库非常方便,但是也使项目的性能下降了不少 。 composer autoload 慢的主要原因在于来自对 PSR-0 和 PSR-4 的支持,加载器得到一个类名时需要到文件系统里查找对应的类文件位置,这导致...

shanhuhai 7个月前 (03-16) 3108℃ 2喜欢

怎样才算学会了 Laravel?

Laravel 框架是一个功能丰富、架构完善的框架,然而对于一个野路子 PHP 程序员来说要想上手不是那么简单的事,为什么呢? Laravel 的核心概念你掌握了吗? Laravel 中可能有许多你之前闻所未闻的概念,比如服务容器(Service Container) 、服务提供...

shanhuhai 1年前 (2017-09-06) 3681℃ 22喜欢

实例讲解PHP多态

当你学习OOP面向对象的时候也许经常会接触到“多态”这个概念,但是总是学了又忘忘了又学,其实多态是面向对象中是一个很基础的概念,它是许多设计模式的组成部分,今天我们来通过一个实例重温和回顾下什么是多态。 多态的定义 多态(Polymorphism )描述了类有不同的功能,但是他们...

shanhuhai 1年前 (2017-09-01) 1125℃ 6喜欢

PHP设计模式之——适配器模式

前面几篇讲了观察者模式,这篇讲一下同样很有用的适配器模式。 “适配器”顾名思义,是用来做适配的,将不同规格的设备通过统一规格的适配器对接到你的系统中。 看一个简单的例子: <?php /** * 微博提供的登录类 * Class Weibo */ class We...

shanhuhai 1年前 (2017-08-29) 860℃ 3喜欢

PHP设计模式之——用观察者模式实现事件绑定

上一篇我们在观察者模式中加入了事件,插件可以根据不同的事件来做不同的业务处理,基本上很简单,我们直接通过主体对象携带事件名称即可。 下面我们要实现的是,只有在知道具体事件后才去实例化绑定了此事件的插件。 下面是具体的实现: <?php /** * Author: shan...

shanhuhai 1年前 (2017-08-28) 974℃ 4喜欢

PHP设计模式之——观察者模式(2)

上一篇通过一个简单的例子介绍了下什么是观察者模式,在实际的业务中,观察者应该对不同的情况做出不同的发应,这个其实很简单,我们加一个给主体对象加一个event的属性就ok了。 看对上一篇修改后的代码,可以自己对比下,改动并不大: <?php /** * 支持了事件的版本 ...

shanhuhai 1年前 (2017-08-27) 649℃ 2喜欢

PHP设计模式之——观察者模式

今天来介绍一个很有用的设计模式,“观察者模式”,顾名思义,既然有“观察者”, 那么一定就有“被观察者”,从这个层面可以理解到,在这个设计模式中有两个对象, 一个是主体对象,一个是客体对象,在实际的代码实现上实际是“被观察者”主动通知了“观察者”。“被观察者”是主体对象,现在看不懂...

shanhuhai 1年前 (2017-08-26) 1035℃ 5喜欢

浅谈设计模式

设计模式是一系列的软件设计思想,这些思想是跨越语言和时间的,它们的主要作用是帮助我们设计出更好的程序。 也许你编程已经很多年了还从未接触过设计模式,不用慌张,很多人和你一样,不会设计模式并不会影响你完成业务代码,相反懂得了设计模式,也许你减慢你的开发速度,这听你起来有点耸人听闻,...

shanhuhai 1年前 (2017-08-25) 768℃ 3喜欢

MVC模式的优化方案(2)——剥离业务代码后的模型就是数据层

上一篇我们讲了在MVC架构中加入服务层,服务层的加入使我们的软件架构更加的容易理解和掌握。 原来的模型部分要负责业务代码和数据库处理,现在我们将业务部分抽取到服务层,这时候模型层只需要负责与数据库的交互,这样的形式跟主流php框架将模型设计与数据表一一对应的模式是一致的,从而解决...

shanhuhai 1年前 (2017-08-20) 816℃ 1喜欢

MVC模式的优化方案(1)——加入 Service 层

大部分程序员都知道 MVC 的软件设计方式,但是用了这么久的设计模式,你是否发出过疑问,目前的MVC设计方式有哪些问题,还有什么样的改进空间?今天来简单介绍下。 经典的MVC设计模式,其中 M(模型)、V(视图)、 C(控制器),其中模型中放是主要的业务代码和数据库交互,视图是软...

shanhuhai 1年前 (2017-08-19) 1168℃ 2喜欢