您的位置 首页 未分类

尝试进入 Laravel 依赖注入

<?php use AppModelsUser; test(‘Action’, function () …

尝试进入 Laravel 依赖注入

<?php use AppModelsUser;  test('Action', function () {      app()->singleton(ClassInterface::class, T1Impl::class);     $out1 = app(ClassInterface::class)();     $this-&gt;assertEquals("T1?", $out1);      app()-&gt;bind(ClassInterface::class, T2Impl::class);      $out2 = app(ClassInterface::class)();     $this-&gt;assertEquals("T2!", $out2);      app()-&gt;bind(T1Impl::class, T2Impl::class);     $out3 = app(T1Impl::class)();     $this-&gt;assertEquals("T2!", $out3);        app()-&gt;bind(T2Impl::class, T3Impl::class);     app()-&gt;bind(T1Impl::class, T2Impl::class);     app()-&gt;singleton(ClassInterface::class, T1Impl::class);     $out4 = app(ClassInterface::class)();     $this-&gt;assertEquals("T3!", $out4);       $user = User::factory()-&gt;create(['name'=&gt;'Tomas']);     $out5 = app(T4::class, ['user'=&gt;$user])();     $this-&gt;assertEquals("Tomas", $out5); });  interface ClassInterface {     public function __invoke(); }  class T1Impl implements ClassInterface {     public function __invoke() {         return "T1?";     } }  class T2Impl implements ClassInterface {     public function __invoke() {         return "T2!";     } }   class T3Impl implements ClassInterface {     public function __invoke() {         return "T3!";     } }  class T4 {     public function __construct(         public User $user     ){}      public function __invoke() {         return $this-&gt;user-&gt;name;     } } 
登录后复制

并且..这意味着如果我“正确”地执行,它可以让我删除“nwidard/larave-modules”模块及其覆盖代码的任何部分?

以上就是尝试进入 Laravel 依赖注入的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/12.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部