接上一篇,还有一些内容没有写完。上一篇文章分析了关于Pimple最重要的代码。本文主要是对PSR-11兼容性的分析。PSR-11服务容器接口PSRPSR是PHPStandardRecommendations的缩写,是由PHPFIG组织制定的PHP规范,是PHP开发的实践标准。有中文版的PSR推荐阅读,但由于是翻译,难免不是很及时,不过对于理解PSR1-PSR7还是很有帮助的PSR-11PSR-11是服务容器接口。interfaceContainerInterface{publicfunctionget($id);publicfunctionhas($id);}只需要实现这两个接口即可。Pimple-PSR-11CompatibilityPimple的作者自己说,由于历史原因,PSR-11没有实现,但是提供了辅助类。1.PimplePsr11Container.php2,PimplePsr11ServiceLocator.php3,PimpleServiceIterator.phpPimplePsr11Container.php实现PSR-11容器类finalclassContainerimplementsContainerInterface{private$pimple;公共函数__construct(PimpleContainer$pimple){$this->pimple=}publicfunctionget($id){return$this->pimple[$id];}publicfunctionhas($id){returnisset($this->pimple[$id]);}}源码很简单,主要是传入pimple变量,然后设置get和has这两个方法。PimplePsr11ServiceLocator.php服务定位1.获取依赖服务时,传入有限数量的服务,不要全部传入。2.可以为服务PimpleServiceIterator.php服务迭代设置一个别名,它实现了Iterator接口,可以循环服务。综上所述,Pimple确实是一个简单的依赖注入容器。代码很容易理解。非常适合入门,比Laravel的DI更容易理解。原创文章,欢迎转载。转载请注明出处,谢谢。原文链接地址:http://dryyun.com/2018/04/19/...作者:dryyun发表日期:2018-04-1916:03:02
