123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?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()
- {
- 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;
- }
- }
|