Seguici su:

Magento 2 Creare una Cache Custom

Magento 2 Creare una Cache Custom

Magento 2 usa molto la cache per rendere più veloce il caricamento delle pagine e può essere Abilitata, Disabilitata o Aggiornata tramite il tool nel pannello di controllo Systesm->Tools->Cache Managment. In fase di sviluppo è più veloce utilizzare la riga di comando per aggiornare la cache, vi rimando all’articolo dei comandi di Magento 2 scritto precedentemente. Magento di default usa 14 tipi di cache diversi, che possiamo visualizzare usando il comando php bin/magento cache:status che ci fornisce il seguente output:

Current status:
                        config: 1
                        layout: 1
                    block_html: 1
                   collections: 1
                    reflection: 1
                        db_ddl: 1
               compiled_config: 1
                           eav: 1
         customer_notification: 1
            config_integration: 1
        config_integration_api: 1
                     full_page: 1
             config_webservice: 1
                     translate: 1
                        vertex: 1

Possiamo disabilitare qualunque tipo di cache. Disabilitando la Cache non la cancelliamo in automatico e per cancellarla dobbiamo eseguire il comando php bin/magento cache:flush che cancella l’interno contenuto.

Se stiamo sviluppando un modulo possiamo anche creare la nostra cache personalizzata. Come esempio prenderemo il modulo base di Magento 2 che abbiamo creato precedentemente. Per creare la nostra custom cache in magento 2 dobbiamo innanzitutto creare il file di configurazione cache.xml in app/code/Tutorial4Dev/Easy/etc

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Cache/etc/cache.xsd">
    <type name="custom_cache" translate="label,description" instance="Tutorial4dev\Easy\Model\Cache\CustomCache">
        <label>Custom Cache</label>
        <description>Tutorial4Dev Custom Cache</description>
    </type>
</config>

e poi creiamo la nostra classe CustomCache che estende la classe di magento TagScope nella directory app/code/Tutorial4dev/Easy/Model/Cache

<?php

namespace Tutorial4dev\Easy\Model\Cache;

class CustomCache extends \Magento\Framework\Cache\Frontend\Decorator\TagScope
{
    const TYPE_IDENTIFIER = 'custom_cache';
    const CACHE_TAG = 'CUSTOM_CACHE';

    public function __construct(\Magento\Framework\App\Cache\Type\FrontendPool $cacheFrontendPol)
    {
        parent::__construct($cacheFrontendPol->get(self::TYPE_IDENTIFIER), self::CACHE_TAG);
        
    }

}

TYPE_IDENTIFIER è la costante che è usata internamente da Magento 2 come codice unico e quindi diverso da ogni altro tipo di cache mentre  CACHE_TAG è usato per distinguare la cache appena creata dagli altri tipi.  Ora possiamo eseguire il comando php bin/magento module:enable Tutorial4dev_Easy per abilitare il modulo e infine php bin/magento setup:upgrade. Andando nel pannello di controllo dell’admin nella lista delle cache troviamo anche la nostra appena creata.

Magento 2 Admin Custom Cache

Possiamo anche controllare tramite linea di comando con il comando php bin/magento cache:status e troveremo la nostra custom_cache nella lista (0 non attiva)

Current status:
                        config: 1
                        layout: 1
                    block_html: 1
                   collections: 1
                    reflection: 1
                        db_ddl: 1
               compiled_config: 1
                           eav: 1
         customer_notification: 1
            config_integration: 1
        config_integration_api: 1
                     full_page: 1
             config_webservice: 1
                     translate: 1
                  custom_cache: 0
                        vertex: 1

Questo è solo un semplice esempio di come si configura la struttura del modulo per creare una cache personalizzata in Magento 2. Nei successivi articoli veedremo come si può utilizzare la cache, come si invalida, come si cancella e come si salvano dati all’interno.

Puoi trovare l’esempio completo qui su GitHub

Pasquale Guarino

pasquale.guarino80@gmail.com

WP2Social Auto Publish Powered By : XYZScripts.com