【发布时间】:2017-09-09 12:00:52
【问题描述】:
Laravel 版本:5.4 PHP版本:7
我制作了一个自定义包,我想知道是否可以通过我的 ServiceProvider 添加防护和提供程序。我不希望其他开发人员在安装自定义包时需要手动将内容放入 auth.php。
所以我只想在 auth.php 中填写 'providers' 和 'guard'。
【问题讨论】:
Laravel 版本:5.4 PHP版本:7
我制作了一个自定义包,我想知道是否可以通过我的 ServiceProvider 添加防护和提供程序。我不希望其他开发人员在安装自定义包时需要手动将内容放入 auth.php。
所以我只想在 auth.php 中填写 'providers' 和 'guard'。
【问题讨论】:
如果您正在创建自定义包,那么我建议您创建自己的配置文件并发布它 (check here)。由于 auth.php 被 laravel 和其他包使用,更改它会影响它们。
【讨论】:
是的,有可能:
在你的服务提供商boot()做:
Auth::provider('myprovidername',function ($app,array $config) {
return myproviderobject
});
Auth::extend("myguard", function ($app,$name, array $config) {
return myguard;
});
需要使用您的身份验证驱动程序的人只需将以下内容放入他们的config/auth.php:
'guards' => [
// ...
'myguardconfig' => [
'driver' => 'myguard',
'provider' => 'myproviderconfig'
]
]
//...
'providers' => [
// ...
'myproviderconfig' => [
'driver' => 'myprovidername'
]
]
【讨论】:
Auth guard [icmsapi] is not defined. :/