博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读 PHP - Pimple 源码笔记(下)
阅读量:7192 次
发布时间:2019-06-29

本文共 1165 字,大约阅读时间需要 3 分钟。

接着 还有一些内容没有写,上篇已经把关于 Pimple 最主要的代码分析了一下,这篇主要是关于 PSR-11 兼容性的分析。

PSR-11 服务容器接口

PSR

是 PHP Standard Recommendations 的简写,由 组织制定的 PHP 规范,是 PHP 开发的实践标准 。

有一份 推荐看看,不过由于是翻译的,难免不是很及时,但是对于理解 PSR 1 - PSR 7 还是很有帮助的。

PSR-11

是服务容器接口 。

interface ContainerInterface{     public function get($id);     public function has($id);}

只需要实现这个两个接口就行。

Pimple - PSR-11 兼容性

Pimple 的作者自己也说了,由于历史原因,没有实现 PSR-11,但是提供了辅助类 。

1、PimplePsr11Container.php
2、PimplePsr11ServiceLocator.php
3、PimpleServiceIterator.php

PimplePsr11Container.php

实现 PSR-11 的容器类

final class Container implements ContainerInterface{    private $pimple;    public function __construct(PimpleContainer $pimple)    {        $this->pimple = $pimple;    }    public function get($id)    {        return $this->pimple[$id];    }    public function has($id)    {        return isset($this->pimple[$id]);    }}

源码很简单,主要是传入 pimple 变量,然后设置 get、has 这个两个方法。

PimplePsr11ServiceLocator.php

服务定位

1、在获取依赖 service 的时候,传入有限个 service,而不是全部
2、可以为 service 设置别名

PimpleServiceIterator.php

服务迭代,实现了 Iterator 接口,可以循环 service 。

总结

Pimple 的确是一个简单的依赖注入容器,代码很容易看懂,对于学习入门来说很好,比 Laravel 的 DI 好懂多了。

原创文章,欢迎转载。转载请注明出处,谢谢。
原文链接地址:
作者:
发表日期: 2018-04-19 16:03:02
你可能感兴趣的文章
Activity转换为View和把图片转换为View
查看>>
參考mudo logging写的win下logging
查看>>
云数据库PolarDB(一)
查看>>
[数据结构] 迷宫问题(栈和队列,深搜和广搜)
查看>>
找不到对象?也许你应该这样做
查看>>
Hadoop集群动态服役新的数据节点&&退役数据节点
查看>>
p4137 Rmq Problem / mex
查看>>
python学习之路---day16--面向对象
查看>>
打造一个高逼格的android开源项目——小白全攻略 (转)
查看>>
JavaScript 基础学习(二)
查看>>
Linux 之Shell for循环
查看>>
Unicode 转换成 Ascii (把Unicode 中文字符串输入到文本中)
查看>>
mysql 安装学习
查看>>
windows phone 8.0 app 移植到windows10 app笔记
查看>>
阿基米德三角形中的最值问题--------2019届成都二诊第16题
查看>>
haproxy配置监控redis主备切换(转)
查看>>
Gradle 修改 Maven 仓库地址(转)
查看>>
Gradle digest
查看>>
分享一段js,判断是否是在iPhone中的Safari浏览器打开的页面
查看>>
ubuntu11.10 搭建lnmp服务器
查看>>