PHP如何实现依赖倒置
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,小编给大家分享一下PHP如何实现依赖倒置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现类:
千家信息网最后更新 2025年02月23日PHP如何实现依赖倒置
小编给大家分享一下PHP如何实现依赖倒置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
实现类:
setings[$abstract] = $concrete; } public function get($abstract, $parameters = array()) { if (!isset($this->setings[$abstract])) { return null; } return $this->build($this->setings[$abstract], $parameters); } public function build($concrete, $parameters) { if ($concrete instanceof Closure) { return $concrete($this, $parameters); } $reflector = new ReflectionClass($concrete); if (!$reflector->isInstantiable()) { throw new Exception("Class {$concrete} is not instantiable"); } $constructor = $reflector->getConstructor(); if (is_null($constructor)) { return $reflector->newInstance(); } $parameters = $constructor->getParameters(); $dependencies = $this->getDependencies($parameters); return $reflector->newInstanceArgs($dependencies); } public function getDependencies($parameters) { $dependencies = array(); foreach ($parameters as $parameter) { $dependency = $parameter->getClass(); if ($dependency === null) { if ($parameter->isDefaultValueAvailable()) { $dependencies[] = $parameter->getDefaultValue(); } else { throw new Exception("Can not be resolve class dependency {$parameter->name}"); } } else { $dependencies[] = $this->get($dependency->name); } } return $dependencies; }}
实现实例:
foo = $foo; }} $container = new Container();$container->set('Baz', 'Baz');$container->set('MyInterface', 'Foo');$baz = $container->get('Baz');print_r($baz);$container->set('MyInterface', 'Bar');$baz = $container->get('Baz');print_r($baz);
以上是"PHP如何实现依赖倒置"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
篇文章
内容
不怎么
大部分
实例
更多
知识
行业
资讯
资讯频道
频道
参考
学习
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏运营软件开发价格
热议网络安全法
饥荒联机查不到服务器
企业是数据库
汕头应用软件开发电话
软件开发英文面试
数据库访问用的什么技术
休宁网络安全费用
欧洲被美国互联网科技巨头垄断
信息网络安全的第三个时钟
数据库级联操作
建立中小企业网络安全论文
护彤网络安全知识
数据库集群技术 概述
永久免费的云服务器游戏
数据库建设的技术路线
巢湖学院数据库试卷
infomix对应的信创数据库
昆明市网络安全应急指挥中心招聘
重庆广播电视网络安全
山西信息化软件开发价钱
一分钟学会电脑软件开发
软件开发进阶系列编码规范
新区大唐官府服务器时间
如何在机房中辨别哪个是服务器
达梦数据库报错代码1837
深圳鑫明网络技术有限公司
绩效数据库名称
青岛拓宇数字网络技术
数据库数据安全技术