Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DeleteExpiredImages.php
Go to the documentation of this file.
1 <?php
7 
9 
14 {
18  protected $_helper;
19 
25  protected $_adminHelper;
26 
30  protected $_mediaDirectory;
31 
35  protected $_storeManager;
36 
43  public function __construct(
44  \Magento\Captcha\Helper\Data $helper,
45  \Magento\Captcha\Helper\Adminhtml\Data $adminHelper,
46  \Magento\Framework\Filesystem $filesystem,
47  \Magento\Store\Model\StoreManager $storeManager
48  ) {
49  $this->_helper = $helper;
50  $this->_adminHelper = $adminHelper;
51  $this->_mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA);
52  $this->_storeManager = $storeManager;
53  }
54 
60  public function execute()
61  {
62  foreach ($this->_storeManager->getWebsites() as $website) {
63  $this->_deleteExpiredImagesForWebsite($this->_helper, $website, $website->getDefaultStore());
64  }
65  $this->_deleteExpiredImagesForWebsite($this->_adminHelper);
66 
67  return $this;
68  }
69 
78  protected function _deleteExpiredImagesForWebsite(
79  \Magento\Captcha\Helper\Data $helper,
80  \Magento\Store\Model\Website $website = null,
81  \Magento\Store\Model\Store $store = null
82  ) {
83  $expire = time() - $helper->getConfig('timeout', $store) * 60;
84  $imageDirectory = $this->_mediaDirectory->getRelativePath($helper->getImgDir($website));
85  foreach ($this->_mediaDirectory->read($imageDirectory) as $filePath) {
86  if ($this->_mediaDirectory->isFile($filePath)
87  && pathinfo($filePath, PATHINFO_EXTENSION) == 'png'
88  && $this->_mediaDirectory->stat($filePath)['mtime'] < $expire
89  ) {
90  $this->_mediaDirectory->delete($filePath);
91  }
92  }
93  }
94 }
$helper
Definition: iframe.phtml:13
$storeManager
_deleteExpiredImagesForWebsite(\Magento\Captcha\Helper\Data $helper, \Magento\Store\Model\Website $website=null, \Magento\Store\Model\Store $store=null)
__construct(\Magento\Captcha\Helper\Data $helper, \Magento\Captcha\Helper\Adminhtml\Data $adminHelper, \Magento\Framework\Filesystem $filesystem, \Magento\Store\Model\StoreManager $storeManager)
$filesystem