Ciao m4V1, grazie per avermi risposto. Sono riuscito a far funzionare il tutto solo che non so se ho rispettato il pattern e alla fine ho utilizzato una doppia dipendenza; oltre a quella fra CurrencyConverter e CurrencyWebservice ho creato anche quella fra Customer e CurrencyConverter. Di seguito il codice:

codice:
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, new CurrencyConverter( new CurrencyWebservice() ));


foreach ($customer->getTransactions() as $transaction) {
    echo $transaction."\n";

}


codice:
require_once("./models/CurrencyConverter.php");

class Customer
{
    private $id;
    private $currencyConverter;
    
    public function __construct($id, CurrencyConverter $currencyConverter) {
        $this->id = $id;
        $this->currencyConverter = $currencyConverter;
    }


    public function getTransactions()
    {
        $i = 1;
        $result = array();
        if (($handle = fopen("data.csv", "r")) !== FALSE) {
            while (($data = fgetcsv($handle)) !== FALSE) {


                if($i>1) {
                    $line = explode(";",$data[0]);
                    
                    if($line[0] == $this->id) {
                        $new_value = $this->currencyConverter->convert($line[2]);
                        $row = "Transazione del $line[1]: $line[2] ==> €$new_value";
                        array_push($result, $row);
                    }
                }
                $i++;
            }
            fclose($handle);
        }
        return $result;
    }

}


codice:
require_once("./models/CurrencyWebservice.php");



class CurrencyConverter
{
    
    private $webservice;
    
    public function __construct(CurrencyWebservice $currencyWebservice) {
        $this->webservice = $currencyWebservice;
    }
    
    public function convert($amount)
    {
        $amount = str_replace('"', "", $amount);
        $currency = substr($amount,0,1);
        $value = substr($amount,1);
        
        $rate =    $this->webservice->getExchangeRate($currency);
        
    return $rate*$value;
    }

}


codice:
class CurrencyWebservice{


    private $currencies = array("s"=>1.20,"$"=>0.95,"e"=>1);


    public function getExchangeRate($currency)
    {
    if (array_key_exists($currency, $this->currencies)) {
        return $this->currencies[$currency];
    } else {
            return 0;
        }
    }

}


Spero sia corretto