自己写的 provider,是 bind 还是 singleton 来绑定呢

1.自己原来写的provider里register方法里用bind绑定的,现在有时间优化代码,感觉是不是应该用singleton呢。感觉应该都用单例来绑定啊。
2.如果是用singleton来绑定,bind又是什么场景用呢。
3.以下代码哪个是比较好的改动方法呢?或者还有更好的方法,请多多指教。



   ```php
        //旧代码
        $this->app->bind(
            'App\Repository\User\UserRepositoryContract',
            'App\Repository\User\UserRepository'
        );


        //第一种改法
        $this->app->bind('App\Repository\User\UserRepositoryContract', function () {
            return new UserRepository();
        });

        //第二种改法
        $this->app->bind('App\Repository\User\UserRepositoryContract', function () {
            return $this->app->make(UserRepository::class);
        });

        //第三种改法
        $this->app->bind('App\Repository\User\UserRepositoryContract', function () {
            return app(UserRepository::class);
        });

        //第四种改法
        $this->app->singleton('App\Repository\User\UserRepositoryContract', function () {
            return new UserRepository();
        });

        //第五种改法
        $this->app->singleton('App\Repository\User\UserRepositoryContract', function () {
            return $this->app->make(UserRepository::class);
        });

        //第六种改法
        $this->app->singleton('App\Repository\User\UserRepositoryContract', function () {
            return app(UserRepository::class);
        });

```

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 1

单例模式一般建议使用在 配置类 等类似地方,还有连接池啥的, 业务相关的对象 bind 比较好吧。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!