控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。Pimple是PHP实现LOC容器的一种方式。

Pimple是一个非常简单的容器类。代码如下:

举一个例子:一个网络上流行的wechat开发包:overtrue/wechat 。

我们先亮出大的composer.json文件:

项目的目录结构图如下:

qq20161204-02x

分析下Application类:

qq20161204-02x

我们分析下MenuServiceProvider组件类:

qq20161204-12x

分析一个Menu类:

qq20161204-32x

抽象类AbstractAPI处理了access_token:

qq20161204-22x

根据这种设计方式,可以很灵活的复用代码。

比如封装第三方web api就可以用这种方式。优酷API、喜马拉雅API、羚羊云API,非常优雅的封装。项目组多个产品之间可以非常好的复用。