【发布时间】:2017-09-21 14:35:05
【问题描述】:
我正在使用一个界面来处理不同的支付选项。
事情在我的控制器中,我得到了银行 slug,但根据那个 slug,我决定在我的情况下使用哪个类银行来处理付款。我的控制器:
public function sendPayment($request, PayBank $bank_transacton)
{
here I want to reference the SentToBank interface and
send payment class that I get in return from checkBankImplementation function//
SendToBank()->sendLoanApplication($bank_transaction);
}
检查 slug 的方法,以便我知道将哪个支付服务发送到接口:
public static function checkBankImplementation($bank_slug) {
switch ($bank_slug) {
case "firstbank":
return new app\FirstBank\Client();
break;
case "secondbank":
return new app\SecondBank\Client();
break;
default:
return null;
}
}
我的界面:
<?php
namespace App\Banks;
interface SendToBank {
public function sendLoanApplication($bank_transaction);
}
【问题讨论】:
-
哪些类实现了 SendToBank 接口?
-
另外两个类各代表一家银行,它们具有相同的方法 sendLoanApplication($bank_transaction)
-
如果你想引用一个接口而不是一个实现,你需要bind implementation to an interface。但我不确定这对你的情况是否有意义。