mir eine Schnittstelle bin mit verschiedenen Zahlungsoptionen zu verarbeiten.Referenz eine Schnittstelle von einem Controller Laravel
Die Sache ist in meinem Controller ich die Bank Slug bekommen, aber auf der Grundlage dieses Slug I, welche Klasse Bank meines Fall entscheiden zu verwenden, um die Zahlung zu verarbeiten. Mein Controller:
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);
}
Methode zur Schnecke zu überprüfen, damit ich weiß, auf welchem Zahlungsdienst an die Schnittstelle gesendet:
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;
}
}
meine Schnittstelle:
<?php
namespace App\Banks;
interface SendToBank {
public function sendLoanApplication($bank_transaction);
}
Welche Klassen implementieren die SendToBank-Schnittstelle? – marijnz0r
Zwei andere Klassen repräsentieren jeweils eine Bank, die dieselbe Methode haben sendLoanApplication ($ bank_transaction) –
Wenn Sie eine Schnittstelle und nicht eine Implementierung referenzieren möchten, müssen Sie [Implementierung an eine Schnittstelle binden] (https: // laravel. com/docs/5.5/container # binding-interfaces-to-implementations). Aber ich bin mir nicht sicher, ob das in deinem Fall sinnvoll ist. – devk