با سلام. میتونید لطفا راهنماییم کنید در رابطه با سوال زیر؟
چطوری میتونیم با تغییر کلاس CheckoutSession تفاوت بین dependency injection و service locator رو نشون بدیم؟
Could you show the difference between dependency injection and a service locator by modifying the CheckoutSession class?
محتویات فایل CheckoutSession.php:
<?php
namespace App;
use function App\card_number_to_card_type;
class CheckoutSession
{
private PaymentGateway $paymentGateway;
public function process(PaymentRequest $request): bool
{
$token = $this->paymentGateway->tokenise($request->cardInput);
return $this->paymentGateway->charge($token, $request->amountInPence);
}
}
محتویات فایل functions.php:
<?php
namespace App;
function card_number_to_card_type(string $cardNumber): CardType
{
if (preg_match('/^[4]/', $cardNumber) === 1) {
return new CardType(CardType::VISA);
} else if (preg_match('/^[5][1-5]/', $cardNumber) === 1) {
return new CardType(CardType::MASTERCARD);
} else if (preg_match('/^[3](4|7)/', $cardNumber) === 1) {
return new CardType(CardType::AMEX);
}
throw new \InvalidArgumentException('Card type unknown');
}
با تشکر
به madadi کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟