PHP实现依赖注入
o0无忧亦无怖 发表于2周前
PHP实现依赖注入
  • 发表于 2周前
  • 阅读 1989
  • 收藏 98
  • 点赞 8
  • 评论 37

1小时搭建人工智能应用 让技术更容易入门>>>   

摘要: 控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征。控制反转(IOC)是一种思想,依赖注入(DI)是实施这种思想的方法。
共有 人打赏支持
粉丝 20
博文 59
码字总数 34523
作品 1
评论 (37)
滔哥
好复杂...:anger:
我勒个屮艸芔茻
好复杂...:boom:
宇润
设计模式听起来很复杂,其实很多用法实际写的时候可能已经用过了
山雨欲来
spring已经出版DI多久了,人称世界上最好的语言PHP DI还在路上
梅开源
php没必要像java一样搞一层层的类。
岩哥无敌
越来越像java
mia0x75

引用来自“山雨欲来”的评论

spring已经出版DI多久了,人称世界上最好的语言PHP DI还在路上
喷都喷不好,什么是语言,什么是框架?
长宁楚王陈涉
有个问题,接口一般都是对应多个实现。alias 中 key 就无法对应多个实现。如果需要使用者关心,key 对应了何种实现的话,容器本身也失去优势了。
o0无忧亦无怖

引用来自“长宁楚王陈涉”的评论

有个问题,接口一般都是对应多个实现。alias 中 key 就无法对应多个实现。如果需要使用者关心,key 对应了何种实现的话,容器本身也失去优势了。
举个栗子: cache=》可以使用redis来做,当你想用files来做得话,设置别名,cache=>File::class。如果你想同时使用多种驱动的话,可以使用SetCacheDriver($di->get("cacheFile"))//别名为cacheFile。当然,SetCacheDriver的参数应该是面向接口的。 注入也分几种,文中主要是以构造器注入为主
o0无忧亦无怖

引用来自“梅开源”的评论

php没必要像java一样搞一层层的类。
合理的优化也是一种必要的存在,毕竟在P7内,性能已经提升很大了。这些并不会造成很大的性能问题
o0无忧亦无怖

引用来自“岩哥无敌”的评论

越来越像java
我也这么觉得
o0无忧亦无怖

引用来自“宇润”的评论

设计模式听起来很复杂,其实很多用法实际写的时候可能已经用过了
必然,设计模式最初是为了弥补面向对象的不足而出现的
长宁楚王陈涉

引用来自“长宁楚王陈涉”的评论

有个问题,接口一般都是对应多个实现。alias 中 key 就无法对应多个实现。如果需要使用者关心,key 对应了何种实现的话,容器本身也失去优势了。

引用来自“o0无忧亦无怖”的评论

举个栗子: cache=》可以使用redis来做,当你想用files来做得话,设置别名,cache=>File::class。如果你想同时使用多种驱动的话,可以使用SetCacheDriver($di->get("cacheFile"))//别名为cacheFile。当然,SetCacheDriver的参数应该是面向接口的。 注入也分几种,文中主要是以构造器注入为主
了解。
_Elvis
PHP的依赖注入和Java,C#的最大不同是不能将实例化的对象赋值给接口,导致需要加个别名!
tubexu
mark
小紫羽

引用来自“_Elvis”的评论

PHP的依赖注入和Java,C#的最大不同是不能将实例化的对象赋值给接口,导致需要加个别名!
接口注入在php也可以实现,但是需要反射类来实现,在laravel框架的代码接口注入的影子。问题是有,就是会导致性能下降,因为php的运行机制,每次请求要生成一次反射类。
o0无忧亦无怖

引用来自“_Elvis”的评论

PHP的依赖注入和Java,C#的最大不同是不能将实例化的对象赋值给接口,导致需要加个别名!

引用来自“小紫羽”的评论

接口注入在php也可以实现,但是需要反射类来实现,在laravel框架的代码接口注入的影子。问题是有,就是会导致性能下降,因为php的运行机制,每次请求要生成一次反射类。
PHP7开启了opcache之后,性能问题得到了解决。如果你是经验老道的开发者,配合7的强制类型,性能快得一匹。参照鸟哥的BLOG对你的代码进行合适的优化,你会发现2者的性能差距微乎其微。
红烧鱿鱼丝
瞬间变小白 , 老老实实的写我的业务代码, 慢慢学习 ,脚踏实地好了, 这些看得头疼:sweat_smile:
eechen

引用来自“_Elvis”的评论

PHP的依赖注入和Java,C#的最大不同是不能将实例化的对象赋值给接口,导致需要加个别名!

引用来自“小紫羽”的评论

接口注入在php也可以实现,但是需要反射类来实现,在laravel框架的代码接口注入的影子。问题是有,就是会导致性能下降,因为php的运行机制,每次请求要生成一次反射类。

引用来自“o0无忧亦无怖”的评论

PHP7开启了opcache之后,性能问题得到了解决。如果你是经验老道的开发者,配合7的强制类型,性能快得一匹。参照鸟哥的BLOG对你的代码进行合适的优化,你会发现2者的性能差距微乎其微。
PHP开启opcache后,只不过是省去了解析PHP脚本生成opcode这一步,而运行在PHP-FPM和MOD_PHP这些CGI下的PHP脚本,每个请求依旧需要重新执行一次opcode对应的逻辑.
百世经纶之傲笑红尘
Javaer表示:前天,有群家伙抄Java框架Struts,造了个ThinkPHP后,今天有家伙抄SpringDI,写了这篇博客
×
o0无忧亦无怖
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: