我从Laravel 5.3迁移到Laravel 5.4。我们有一个以前的应用程序的自定义SHA HASHER。
在Laravel 5.4补丁说明中,这表明share()
已被删除,singleton()
是替换。
除了新更新的Hasher外,我已经启动并运行了该应用程序。当我将共享功能更改为singleton时,我会收到以下错误:
ErrorException: Illegal offset type in unset in /Applications/XAMPP/xamppfiles/htdocs/App/vendor/laravel/framework/src/Illuminate/Container/Container.php:1090
#3 /Applications/XAMPP/xamppfiles/htdocs/App/app/Libraries/SHAHashServiceProvider.php(13): IlluminateContainerContainer->singleton(Object(Closure))
我有新更新的Hasher如下:
public function register() {
$this->app['hash'] = $this->app->singleton(function () {
return new SHAHasher();
});
}
Singleton功能在这里做错了什么?
谢谢!
这是文档创建单身人士所拥有的:
$this->app->singleton('HelpSpotAPI', function ($app) {
return new HelpSpotAPI($app->make('HttpClient'));
});
与您拥有的不匹配。
laravel文档-5.4-服务容器 - 绑定