mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
118 lines
2.9 KiB
PHP
118 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\AdminNotification\Model\System\Message;
|
|
|
|
/**
|
|
* @api
|
|
* @since 100.0.2
|
|
*/
|
|
class CacheOutdated implements \Magento\Framework\Notification\MessageInterface
|
|
{
|
|
/**
|
|
* @var \Magento\Framework\UrlInterface
|
|
*/
|
|
protected $_urlBuilder;
|
|
|
|
/**
|
|
* @var \Magento\Framework\AuthorizationInterface
|
|
*/
|
|
protected $_authorization;
|
|
|
|
/**
|
|
* @var \Magento\Framework\App\Cache\TypeListInterface
|
|
*/
|
|
protected $_cacheTypeList;
|
|
|
|
/**
|
|
* @param \Magento\Framework\AuthorizationInterface $authorization
|
|
* @param \Magento\Framework\UrlInterface $urlBuilder
|
|
* @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
|
|
*/
|
|
public function __construct(
|
|
\Magento\Framework\AuthorizationInterface $authorization,
|
|
\Magento\Framework\UrlInterface $urlBuilder,
|
|
\Magento\Framework\App\Cache\TypeListInterface $cacheTypeList
|
|
) {
|
|
$this->_authorization = $authorization;
|
|
$this->_urlBuilder = $urlBuilder;
|
|
$this->_cacheTypeList = $cacheTypeList;
|
|
}
|
|
|
|
/**
|
|
* Get array of cache types which require data refresh
|
|
*
|
|
* @return array
|
|
*/
|
|
protected function _getCacheTypesForRefresh()
|
|
{
|
|
$output = [];
|
|
foreach ($this->_cacheTypeList->getInvalidated() as $type) {
|
|
$output[] = $type->getCacheType();
|
|
}
|
|
return $output;
|
|
}
|
|
|
|
/**
|
|
* Retrieve unique message identity
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getIdentity()
|
|
{
|
|
// md5() here is not for cryptographic use.
|
|
// phpcs:ignore Magento2.Security.InsecureFunction
|
|
return md5('cache' . implode(':', $this->_getCacheTypesForRefresh()));
|
|
}
|
|
|
|
/**
|
|
* Check whether
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isDisplayed()
|
|
{
|
|
return $this->_authorization->isAllowed(
|
|
'Magento_Backend::cache'
|
|
) && count(
|
|
$this->_getCacheTypesForRefresh()
|
|
) > 0;
|
|
}
|
|
|
|
/**
|
|
* Retrieve message text
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getText()
|
|
{
|
|
$cacheTypes = implode(', ', $this->_getCacheTypesForRefresh());
|
|
$message = __('One or more of the Cache Types are invalidated: %1. ', $cacheTypes) . ' ';
|
|
$url = $this->_urlBuilder->getUrl('adminhtml/cache');
|
|
$message .= __('Please go to <a href="%1">Cache Management</a> and refresh cache types.', $url);
|
|
return $message;
|
|
}
|
|
|
|
/**
|
|
* Retrieve problem management url
|
|
*
|
|
* @return string|null
|
|
*/
|
|
public function getLink()
|
|
{
|
|
return $this->_urlBuilder->getUrl('adminhtml/cache');
|
|
}
|
|
|
|
/**
|
|
* Retrieve message severity
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getSeverity()
|
|
{
|
|
return \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL;
|
|
}
|
|
}
|