【发布时间】:2018-08-01 01:41:30
【问题描述】:
我一直在使用 drawmyattention 将我的 laravel 代码与 xero 集成,我们从客户数据库中获取数据并将其添加到我们的 CRM 中。 最近,我们有第二个客户也想与 Xero 系统集成,我面临的问题是更改客户(组织)我需要在配置文件中更改以下内容
消费者密钥 消费者秘密 和 RSA加密
但是当我在 config/xero/config.php 文件中动态更改这些值时,由于已经加载了 drawmyattention 供应商提供者,它们不会获得新值,而是在配置文件中保留旧值。
我用过
config('xero.config.oauth', new array(values))
我可以记录并查看值已更改,但是当我进行连接调用时,它会从客户端 1 获取数据,并且通过进一步记录,我知道新的配置值不会传播到之前已加载的提供程序。
我尝试创建自己的延迟服务提供者
https://laravel.com/docs/5.2/providers
没有运气。
有点卡住,而其他一切工作正常,由于这个原因,无法在运行时切换 xero 组织。
链接中的答案也谈到了同样的问题,但仍然无法解决 Laravel dynamic config settings
当我创建自己的时候
class XeroDefferedProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = true;
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('DrawMyAttention\XeroLaravel\Facades\XeroPrivate', function()
{
return new XeroPrivate();
});
}
public function provides()
{
return ['DrawMyAttention\XeroLaravel\Facades\XeroPrivate'];
}
}
我收到 XeroPrivate 类不存在的错误..
我也对使用感到困惑 'DrawMyAttention\XeroLaravel\Facades\XeroPrivate' 或者 'DrawMyAttention\XeroLaravel\Providers\XeroServiceProvider'
因为后来它本身就是一个提供者,我认为因为我需要声明对象,所以我需要使用门面,但是啊,我不是 laravel 的专业人士。
【问题讨论】: