easyswoole - 基于swoole扩展实现的一款高性能php框架

依賴注入

Dependency Injection 依賴注入

EasySwoole 實現了簡單版的 IOC 容器,使用 IOC 容器 可以很方便地存儲/獲取資源,實現解耦。

使用依賴注入,最重要的一點好處就是有效地分離了對象和它所需要的外部資源,使得它們松散耦合,有利于功能復用,更重要的是使得程序的整個體系結構變得非常靈活。

在我們的日常開發中,創建對象的操作隨處可見,以至于對其十分熟悉的同時又感覺十分繁瑣,每次需要對象都需要親手將其 new 出來,甚至某些情況下由于壞編程習慣還會造成對象無法被回收,這是相當糟糕的。但更為嚴重的是,我們一直倡導的松耦合、少入侵原則,這種情況下變得一無是處。于是前輩們開始謀求改變這種編程陋習,考慮如何使用編碼更加解耦合,由此而來的解決方案是面向接口的編程。

注意:在服務啟動后,對 IOC容器 的獲取/注入僅限當前進程有效。不對其他 worker 進程產生影響。

方法列表

getInstance

用于獲取依賴注入組件 IoC 容器 對象。

使用示例:

$di = \EasySwoole\Component\Di::getInstance();

set

用于向 IoC 容器 中注入內容。

函數原型:set($key, $obj, ...$arg): void

  • $key: 鍵名。

  • $obj: 要注入的內容。支持注入對象名、對象實例、閉包、資源、字符串等各種常見變量。

  • $arg: 若注入的內容為 is_callable 類型,則可以設置該參數以供 callable 執行時傳入。

使用示例:

$di->set('test', new TestClass());
$di->set('test', TestClass::class);

// set 的時候儲存的是[類名, 方法名]的數組,需要自己手動調用 call_user_func() 執行(不要被錯誤與異常章節的 demo 誤解為會自動執行)
$di->set('test', [TestClass::class,'testFunction']);

// set 的時候傳遞了類名,get 的時候才去 new 對象,并且將可變變量傳遞進構造函數,返回實例化后的對象
$di->set('test', TestClass::class, $arg_one, $arg_tow);

Diset 方法為懶惰加載模式,若 set 一個對象名或者閉包,則該對象不會馬上被創建。

get

用戶獲取 IoC 容器 中某個注入的內容。

函數原型:get($key)

  • $key: 調用 set 方法時設置的鍵名。

使用示例:

$val = $di->get('test');

delete

用戶刪除 IoC 容器 中某個注入的內容。

函數原型:delete($key): void

  • $key: 調用 set 方法時設置的鍵名。

使用示例:

$di->delete('test');

clear

用于清空 IoC 容器 的所有內容。

函數原型:clear($key): void

  • $key: 調用 set 方法時設置的鍵名。
主站蜘蛛池模板: 上海塑料链条生产厂家-塑料网带批发-柔性齿形链价格-上海瀚幽传动机械有限公司 | 专业提供医疗器械,医疗设备,进口国产医疗设备,医疗耗材采购,医疗设备厂家等医疗器械信息-上海聚慕医疗器械有限公司 | 长沙升阳化工材料有限公司| 双螺杆挤压膨化设备_挤压熟化设备_烘干设备_油炸设备及喷涂调味设备-山东铭本机械科技公司 | 卡压式管件_不锈钢卡压式管件_双卡压管件_不锈钢沟槽管件_承插焊管件_温州市中达阀门管件有限公司 | 磐石在线-磐石市综合信息门户网www.pszx.com - Powered by Discuz! | 西安logo设计公司/西安包装设计公司/西安画册设计公司/西安广告公司/西安品牌设计公司/泰勒广告 雾度计-雾度仪-透光率测试仪-3nh品牌雾度仪生产厂家 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 球形钢支座,粘滞阻尼器,抗震球型钢支座,盆式橡胶支座,调谐质量阻尼器,屈曲约束支撑-衡水路泽科技 | 深圳心理咨询-专业心理咨询服务平台「专家免费在线」-深圳从心开始心理O2O | ?神龙上古堂全国官网_颈腰椎调理服务中心_萨迦藏式秘方渗透法 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 频谱矢量网络分析仪_鼎阳数字示波器-苏州东伟元电子有限公司 | 新密耐火材料厂家价格-河南郑州荣盛窑炉耐火材料有限公司 | 酒店宾馆一次性用品厂家-酒店洗漱用品,洗浴用品品牌方案-江苏欧佩 | 美国SI中国区总代-北京开源国创科技有限公司 | 土壤碳通量-土壤水势传感器-涡度相关-北京力高泰科技有限公司 | 排烟风机-屋顶风机-消防高温排烟风机-山东凯亿空调 | 阻抗分析仪 阻抗测试仪 介电常数测试仪 充电枪测试仪-苏州腾斯凯电子科技有限公司 | 云南打砂机_昆明制砂机_云南砂石生产线_昆明洗砂机_昆明除尘设备_云南昆明滇重矿山机械设备有限公司 | 无轴螺旋输送机_双无轴螺旋输送机_垃圾,污泥无轴螺旋输送机-新乡市大汉振动机械有限公司 | 南京自学考试网-南京自考报名 | 青州东威机械有限公司,洗沙机,脱水筛、细沙回收机,淘金设备,洗石机,砂石分离机,筛沙机,采沙船,清淤船,破碎制砂机,海沙淡化设备 | 上海拓展训练_上海拓展培训_上海团建活动_上海团建策划 | 欧美日韩人妻精品一区二区三区_欧美成人精品欧美一级乱黄_亚洲欧美日韩高清一区二区三区_国产一级做a爰片久久毛片_日韩一级视频在线观看播放_精品一区二区三区免费毛片爱_完整观看高清秒播国内外精品资源 | 外圆/圆管抛光机_方管抛光机/除锈机_活塞杆抛光机-不锈钢管抛光机-邢台欧邦机械 | 山东万通液压股份有限公司-自卸车专用油缸,能源采掘设备油缸,机械装备用油缸,油气弹簧,工程机械油缸,液压元件 | 墙板_户外墙板_ASA共挤户外墙板-康亿家生态木业集团 | 正拓夏令营官网-中小学生军事夏令营-研学军旅训练拓展夏令营 | 郑州四棉纺织有限公司-现代化纺织企业 | 真空烘箱-高低温试验箱-防爆烘箱-防爆高低温试验箱-老化房-恒温恒湿箱-高低温试验箱-高低温冲击试验箱厂家—上海标承实验仪器有限公司 | 水上浮筒_塑料浮筒_龙舟码头_浮筒浮动码头-黄山耀利水上设施有限公司 | 山东腾达源金属材料官网-耐磨板nm400,nm400耐磨钢板,nm500耐磨钢板切割,耐候板批发,高强板现货【价格】 | 酸碱废气中和塔-酸雾废气吸收塔-酸雾废气处理塔|首页-广州市佰镀通风设备有限公司 | 木别墅-小木屋-防腐木木屋-成都腾龙装配式建筑科技有限公司 | 卧螺离心机-固液分离机-台州春鼎机械制造有限公司 | 苏州温测仪器有限公司-苏州炉温跟踪仪|苏州隔热箱|苏州炉温测试仪|苏州恒温恒湿箱 | 无锡艾迅自动化科技ASCO电磁阀-dwyer/topworx代理-上泰仪表代理商 | 机械智能停车设备_智能机械式立体停车库_立体车库停车设备租赁_山东科博机械车库 | 一体化净水器设备-浸没式膜水处理设备-智慧水务-超滤膜-模块化净水设备-浙江华晨环保有限公司 | 盐城市城镇化建设投资集团有限公司[盐城国资企业、盐城国资集团、盐城文化旅游、盐城基础设施、盐城土地开发、盐城粮食收储] |