PHP: gestire la tassazione in un e-commerce con l'approccio OOP

In PHP possiamo gestire la tassazione in uso in un e-commerce utilizzando l'approccio OOP.

Iniziamo col definire una classe astratta:


abstract class Tax {
    abstract protected function add($amount);
    abstract protected function getAmountValue($value);
}

Volendo gestire l'aggiunta e il calcolo dell'IVA possiamo creare la seguente classe concreta:


class Vat extends Tax {
    private $value;

    public function __construct($val = 22) {
        $this->value = ( $val / 100 ) + 1;
    }

    public function add($amount) {
        return ($this->value * $amount);
    }

    public function getAmountValue($value) {
        $tax_value = $this->add($value);
        return ($tax_value - $value);
    }
}

La classe concreta deve implementare tutti i metodi astratti definiti a livello di firma nella classe astratta. Nel nostro caso i due metodi calcolano il valore con IVA di un totale e la differenza tra tale valore e il valore originale.