如何用 singleton() 替换 share() 函数

How to replace share() function with singletone()

在Laravel 5.4中不再支持共享功能。推荐使用singleton()。所以我尝试了几件事。

这是我想用 singleton() 替换的代码

$this->bind('Configuration',
   $this->share(function () use ($config) {
         return new Configuration($config);
   }), true
);

修复此代码的任何解决方案。

$this->app->singleton('Configuration', function () use ($config) {
    return new Configuration($config);
});

如果你有容器实例那么

$container->singleton('Configuration', function () use ($config) {
    return new Configuration($config);
});

您可以在此处阅读有关绑定的更多信息https://laravel.com/docs/5.4/container#binding

感谢回复

我用过 wrap()

$this->bind('Configuration',
            $this->wrap(function () use ($config) {
                return new Configuration($config);
            }), true
        );

这对我有用.. 从这里引用新方法 https://laravel.com/api/5.4/Illuminate/Container/Container.html