No così è come prima, anzi peggio perché non fai neanche la injection.
CurrencyConverter non lo devi usare dentro alla classe Customer, Customer deve restituire un elenco di transazioni non convertite che saranno poi passate al CurrencyConverter, ma fuori dall'oggetto Customer.
Idealmente la conversione avverrà durante la generazione del report, qualcosa di questo tipo:
Codice PHP:
require_once("./models/Customer.php");
$id = $argv[1];
if(!isset($id) || !is_numeric($id)) {
echo "Argomento non valido. Esecuzione interrotta\n";
echo "Si prega di inserire un intero\n";
exit;
}
$customer = new Customer($id);
$CurrencyConverter = new CurrencyConverter( new CurrencyWebservice() );
foreach ($customer->getTransactions() as $transaction) {
$converted = $CurrencyConverter->convert($transaction);
echo $converted . "\n";
}