我已经制作了php class that combines different hash algorithms,我想在EXECUTE IMMEDIATE
laravel的方法中实现它。
我目前的解决方案是访问AuthController并将bcrypt()
替换为bcrypt($data['password'])
,但我想知道是否有办法在不更改Illuminate Hashing供应商中的代码的情况下修改方法在AuthController中。
如何扩展此方法?
谢谢!
答案 0 :(得分:2)
您需要做的是进入config/app.php
并用自定义替换Illuminate\Hashing\HashServiceProvider::class,
,现在您可以设置自定义单例。在上面的提供者中有:
$this->app->singleton('hash', function () {
return new BcryptHasher;
});
你可以这样做:
$this->app->singleton('hash', function () {
return new MyCustomHasher;
});
当然定义将实现MyCustomHasher
接口
HasherContract
类
它应该没有问题,因为当您查看bcrypt
定义时:
function bcrypt($value, $options = [])
{
return app('hash')->make($value, $options);
}
你看到你运行绑定到hash