为什么需要清除Magento 2中的缓存?缓存是为了提高网站性能而存在的,它可以存储已经生成的页面或数据,以便在下一次请求时能够更快地提供给用户。尽管缓存对于性能是有益的,但在开发过程中,可能需要清除缓存以查看对代码和配置的更改的实际效果。

Magento 2中,缓存清理和缓存刷新是两个不同的操作:

缓存清理/清除: 这是删除所有已启用的Magento相关缓存的操作。它不会影响服务器上与Magento无关的其他缓存部分。

缓存刷新: 缓存刷新是清理存储在缓存中的所有内容的操作。与缓存清理不同,它会影响属于同一存储的其他部分。通常在对后端配置进行更改后,如果缓存清理未反映前端的更改,可以尝试刷新Magento 2中的缓存。

区分这两个操作非常重要,因为错误执行它们可能会导致不必要的问题。

如何以编程方式清除Magento 2缓存?

以下是以编程方式清除Magento 2缓存的步骤:

Helper中添加以下代码:

php

Copy code

<?php

use MagentoFrameworkAppPageCacheVersion;

use MagentoFrameworkAppCacheTypeListInterface;

use MagentoFrameworkAppCacheFrontendPool;

 

protected $cacheTypeList;

protected $cacheFrontendPool;

 

public function __construct(

    TypeListInterface $cacheTypeList, 

    Pool $cacheFrontendPool

){

    

    $this->cacheTypeList = $cacheTypeList;

    $this->cacheFrontendPool = $cacheFrontendPool;

 

}

 

public function flushCache(Version $subject)

{

  $_types = [

            'config',

            'layout',

            'block_html',

            'collections',

            'reflection',

            'db_ddl',

            'eav',

            'config_integration',

            'config_integration_api',

            'full_page',

            'translate',

            'config_webservice'

            ];

 

    foreach ($_types as $type) {

        $this->cacheTypeList->cleanType($type);

    }

    foreach ($this->cacheFrontendPool as $cacheFrontend) {

        $cacheFrontend->getBackend()->clean();

    }

}

调用清除缓存的函数:

在控制器或模型中,可以调用flushCache()函数以清除缓存。这将删除所有已启用的Magento相关缓存,以便可以查看对代码和配置更改的实际效果。

通过遵循上述步骤,可以轻松地以编程方式清除Magento 2缓存,以确保开发和维护工作在开发过程中顺利进行。清除缓存是Magento 2开发过程中的一个常见任务,掌握这个技能将有助于更轻松地调试和测试Magento 2商店。

(本文内容根据网络资料整理,出于传递更多信息之目的,不代表连连国际赞同其观点和立场)