laravel - 在 Laravel 中将 Braintree 从 Class 转换为实例接口,代码去哪了?
问题描述
所以我开发了一个界面并与 Braintree 合作,但他们已经更新了他们的 api 从类级别转到实例样式界面。他们给出了以下内容来展示新旧代码风格。问题是旧代码进入了 \app\Providers\AppServiceProvider.php 文件,我不知道新代码应该放在哪里。首先让我向您展示 Braintree 提供的代码示例。
AppServiceProvider 中的旧类级别样式
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('use_your_merchant_id');
Braintree_Configuration::publicKey('use_your_public_key');
Braintree_Configuration::privateKey('use_your_private_key');
新实例样式代码(此代码在哪里?)
$gateway = new Braintree_Gateway([
'environment' => 'sandbox',
'merchantId' => 'use_your_merchant_id',
'publicKey' => 'use_your_public_key',
'privateKey' => 'use_your_private_key'
]);
所以我有一个包含所有 Braintree API 调用的特征。例如,这是我在旧 Class 样式代码中使用的 trait 中的一个方法
public function btGetClientToken($customerID)
{
return \Braintree_ClientToken::generate([
"customerId" => $customerID,
"merchantAccountId" => config('services.braintree.merchant_account_id')]);
}
这是新实例样式界面的相同方法
public function btGetClientToken($customerID)
{
return $gateway()->clientToken()->generate([
"customerId" => $customerID,
"merchantAccountId" => config('services.braintree.merchant_account_id')]);
}
但当然问题是我不知道我应该把第一块代码放在哪里,我假设我应该创建一个全局可访问的变量($gateway)?如果我将第一个代码块添加到新方法的顶部,那么一切正常。
似乎我不应该在特征的每个方法中创建一个新实例。我试图从他们那里获得帮助,但似乎没有人熟悉 Laravel,而且他们的文档没有 Laravel 参考资料可以提供帮助。
TIA
解决方案
推荐阅读
- flutter - Flutter StatefulWidget 没有小部件属性
- docker - 我对 docker compose 的 redis6 有一些问题。redis 无法读取 acl 配置
- r - R 聚合功能(使用 PowerBI)
- r - bookdown 中从 git_book 更改为 bs4_book 时未正确呈现特殊字符
- java - 是否可以将我的递归方法更改为迭代?
- azure-cli - 按地址而不是索引删除前门后端
- docker - docker-compose 导致连接已重置(来自 firefox)或来自服务器的空回复(来自 curl)?
- exchangelib - 使用 Python/Exchangelib 请求阅读回执?
- python - Python:递归函数。如何返回targetsum的所有子集
- c# - 无法将类型“UnityEngine.AudioClip”隐式转换为“UnityEngine.AudioSource”