Query al db di Magento tramite le classi Zend

Nell’articolo precedente abbiamo visto come configurare la connessione al database di Magento tramite le classi di Zend Framework.

Il passo successivo consiste nella preparazione di un’istanza con un ruolo di interfaccia per la tabella, passando il nome della stessa tabella come parametro del costruttore della classe Zend_Db_Table.

  $product_table = Zend_Db_Table('catalog_product_entity');

Uno dei tanti casi concreti in cui possiamo usare questa tecnica è quello in cui si ha la necessità di caricare una serie di attributi ( nell’esempio tutti i decimali) di un certo prodotto.  

$select = $product_table->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false)
   ->where('catalog_product_entity.entity_id = ?', $product_id)
   ->join('catalog_product_entity_decimal', 'catalog_product_entity_decimal.entity_id = catalog_product_entity.entity_id');

$results = $product_table->fetchAll($select);

In questo modo, come risultato avremo un array dove ogni elemento corrisponde ad uno specifico attributo per un singolo negozio (o per store_id = 0).

Come funziona la cache di Magento 1.9.x

In questo articolo ci riferiamo esclusivamente alla cache interna di Magento, che riguarda blocchi HTML, file di configurazione e altri file xml, come ad esempio quelli relativi a layout. Questo tipo di cache quindi, non agisce sui file php.

Ogni volta che modifichiamo un file xml nella cartella layout, ad esempio il cambio di un template associato ad un certo blocco, occorre pulire la cache di Magento in modo tale da applicare le modifiche.

Per far questo quindi, basta andare nella sezione ‘Sistema’ > ‘Gestione della cache’ del pannello di amministrazione e usare il pulsante “Pulisci cache magento” (“Flush magento cache” per chi non avesse la traduzione).

In alternativa, si può avere lo stesso risultato cancellando la cartella var/cache all’interno della root di Magento.