Laravel 5.4更新 - SHA Hasher在Singleton中未设置的非法偏移类型

I'm migrating from Laravel 5.3 to Laravel 5.4. We have a custom SHA hasher from a previous application.

In the Laravel 5.4 patch notes, it is shown that share() has been removed and singleton() is to replace it.

I've got the application up and running except for the newly updated hasher. When I change my share function to singleton I get the following error:

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): Illuminate\Container\Container->singleton(Object(Closure))

I have the newly updated hasher is as following:

public function register() {
    $this->app['hash'] = $this->app->singleton(function () {
        return new SHAHasher();
    });

}

What am I doing wrong here with the singleton function?

Thanks!

This is what the docs have for creating a singleton:

$this->app->singleton('HelpSpot\API', function ($app) {
    return new HelpSpot\API($app->make('HttpClient'));
});

Doesn't match what you have.

Laravel Docs - 5.4 - Service Container - Bindings