[PHP] 服务容器绑定接口测试

laravel的入口文件那里,使用到了服务容器自动注入和绑定接口功能

我简化后的测试代码如下:

B是接口,A实现了B,C依赖B类型

复制代码
interface B{
    public function test();
}
class A implements B {

    public function test()
    {
        echo "A。。。\n";
    }
}
class C{
    public function __construct(B $b)
    {
        echo "C类\n";
        $b->test();
    }
}
$app->singleton(
    B::class,
    A::class
);
$c=$app->singleton(
    C::class
);
//$b=$app->make(B::class);
//$b->test();
$c=$app->make(C::class);
$d=$app->make(C::class);
var_dump($c,$d);die;
复制代码

容器绑定C

$c=$app->singleton(
    C::class
);

从容器获取C,因为是单例的,两个对象是一样的,并且成功调起了A中的方法

C类
A。。。
object(C)#27 (0) {
}
object(C)#27 (0) {
}

 

 

$c=$app->make(C::class);
$d=$app->make(C::class);
var_dump($c,$d);die;
posted @   唯一客服系统开发笔记  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-06-19 [Linux] PHP程序员玩转Linux系列-Ubuntu配置SVN服务器并搭配域名
2016-06-19 [javaSE] 数据结构(AVL树基本概念)
点击右上角即可分享
微信分享提示
1
chat with us