yii容器使用

发布于 2022-09-11 21:32:38 字数 634 浏览 16 评论 0

想实现的功能

利用容器的递归反射进行获取对象,解决依赖问题

相关类

Show类

class Show
{
    public function show()
    {
        var_dump('show---show');
    }
}

MyFilter类

class MyFilter
{
    public function __construct(Show $show, $id)
    {
       var_dump('MyFilter---构造函数');
       var_dump($id);
    }

    public function show()
    {
        var_dump('show');
    }

}

控制器代码

获取MyFilter

$obj = Yii::$container->get(MyFilter::class, ['id' => 1]);
var_dump($obj->show());

但是会报错, id这个参数依赖没解决,该如何写?
laravel中app()这样是可以的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少年亿悲伤 2022-09-18 21:32:38

你少传了一个show参数呀, 这个必须要按照构造参数的顺序来传, 应该是这样的

$obj = Yii::$container->get(MyFilter::class, ['show' => Yii::$container->get(Show::class), 'id' => 1]);
var_dump($obj->show());

你的MyFilter定义了两个构造参数, 你要按照顺序去传, 可以少后面的,但是不能少前面的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文