Dependency injection: come funzionano le preference in Magento 2

Una delle novità introdotte in Magento 2, è l’utilizzo del pattern dependency injection. Questo in realtà meriterebbe un articolo a sè stante, ma almeno per il momento, diciamo che ha l’obiettivo di migliorare la gestione delle dipendenze, evitando di inserire riferimenti a classi esterne direttamente all’interno di un metodo, come invece avviene qui

public function getSku($id)
{
    $db  = new DBHandler;
    $row = $db->query('SELECT sku FROM products WHERE id = ?',$id);
    return $row['sku'];
}

e quindi passare le dipendenze tramite costruttore oppure come parametri del metodo, favorendo così il riutilizzo e la testabilità. Leggi tutto “Dependency injection: come funzionano le preference in Magento 2”