读 PHP - Pimple 源码笔记(下)
接着上篇 还有一些内容没有写,上篇已经把关于 Pimple 最主要的代码分析了一下,这篇主要是关于 PSR-11 兼容性的分析。
PSR-11 服务容器接口
PSR
PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准 。
有一份 PSR 中文版 推荐看看,不过由于是翻译的,难免不是很及时,但是对于理解 PSR 1 - PSR 7 还是很有帮助的。
PSR-11
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 好懂多了。
原创文章,欢迎转载。转载请注明出处,谢谢。
原文链接地址:http://dryyun.com/2018/04/19/...
作者: dryyun
发表日期: 2018-04-19 16:03:02
读 PHP - Pimple 源码笔记(下)相关推荐
- 数据结构源码笔记(C语言):置换-选择算法
//实现置换-选择算法#include<stdio.h> #include<malloc.h> #include<string.h> #include<std ...
- redis源码笔记 - 刘浩de技术博客 - 博客园
redis源码笔记 - 刘浩de技术博客 - 博客园 redis源码笔记 - 刘浩de技术博客 - 博客园 redis源码笔记 记录发现的一个hiredis的bug 摘要: hiredis是redis ...
- 《〈XNova/OGame〉源码笔记》(5)
<〈XNova/OGame〉源码笔记> 作者:赖勇浩(http://blog.csdn.net/lanphaday) 一. 安装 现在去看安装部分,可能显得颇为怪异.其实不然,之 ...
- 《〈XNova/OGame〉源码笔记》(1-2)
<〈XNova/OGame〉源码笔记> 作者:赖勇浩(http://blog.csdn.net/lanphaday) 一. 引言 <OGame>中文名<银河帝国 ...
- angularjs源码笔记(3)--injector
2019独角兽企业重金招聘Python工程师标准>>> 简介 injector是用来做参数自动注入的,例如 function fn ($http, $scope, aService) ...
- 数据结构源码笔记(C语言):索引文件建立和查找
//实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...
- 数据结构源码笔记(C语言):栈的基本操作
#include <stdio.h> #define MaxSize 100typedef char ElemType;typedef struct {char stack[MaxSize ...
- 数据结构源码笔记(C语言):基数排序
//实现基数排序算法#include<stdio.h> #include<malloc.h> #include<string.h>#define MAXE 20 / ...
- 数据结构源码笔记(C语言):哈希表的相关运算算法
//实现哈希表的相关运算算法 #include<stdio.h> #include<malloc.h> #include<string.h>#define MaxS ...
- Dubbo-go 源码笔记(二)客户端调用过程
作者 | 李志信 导读:有了上一篇文章<Dubbo-go 源码笔记(一)Server 端开启服务过程>的铺垫,可以类比客户端启动于服务端的启动过程.其中最大的区别是服务端通过 zk 注册服 ...
最新文章
- Netbackup 添加策略_报NFS.Skipping
- PyQt 5布局管理
- python核心编程第六章练习6-12
- python判断字母数字_Python判断字符串是否为字母或者数字(浮点数)的多种方法
- 东南大学数字信号处理实验_数字与信号处理实验1 离散时间信号分析
- 什么是分布式_什么是分布式系统,如何学习分布式系统?
- 华为交换机重制_华为交换机重置命令
- Maximum Mode
- html在文本中加颜色,如何在HTML中更改文本颜色
- 人工智能/机器学习/深度学习 经典必看书籍【附百度网盘链接】
- android studio umake,Android Studio中NDK开发傻瓜教程(CMake)
- github上传本地项目代码
- python输出二进制数_Python计算二进制数及输出补码
- FaceNet2ExpNet: Regularizing a Deep Face Recognition Net for Expression Recognition论文个人解读
- MacBook外接显示器的显示模式介绍及设置说明(分屏/多屏)
- 计算机网络和智能家居,华中科技大学计算机网络专题智能家居与普适计算.ppt...
- SAP vf11发票冲销
- 不要跟穷鬼学着做副业
- Java 查找数组中某个数字的下标
- python编辑word书签_小伙发现了Python中编写word文档的库,编辑文字方便多了
热门文章
- 基于Java Servlet图片服务器
- 自己动手搭建一个简单的基于Hadoop的离线分析系统之一——网络爬虫
- CVPR 2022 Oral | 视频文本预训练新SOTA,港大、腾讯ARC Lab推出基于多项选择题的借口任务
- Computer Viruses and Malware (Advances in Information Security)
- 外贸邮箱企业邮箱,免费外贸企业邮箱大全,外贸企业邮箱都有哪些?
- 电商后台系统:管理后台之账号管理(一)
- 计算机编程情话,程序员的土味情话~(表白代码第二波)
- 错误代码1500什么意思_宽带出错出错提示代码是示什么意思
- 【独立站运营】什么是营销转化率?如何提升转化率?
- 英文版oracle数据库不能复制粘贴,win10 plsql没法复制 粘贴