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”

Magento 2 – Come modificare lo schema del database

Per aggiungere una nuova tabella nel database di Magento 2, possiamo automatizzare il processo attraverso la creazione di un modulo dedicato.

Per definire la struttura della nuova tabella, useremo lo script InstallSchema.php che va creato nella cartella Setup, a sua volta situata nella root del nuovo modulo creato. Potete trovare un esempio reale nel file del modulo Magento_Sales (del quale trovate una parte nell’immagine sotto), situato in vendor/magento/module-sales/Setup. Leggi tutto “Magento 2 – Come modificare lo schema del database”