![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/extmag/shiplab/Cron/ |
<?php /** * Copyright © Extmag. All rights reserved. */ namespace Extmag\Shiplab\Cron; use Extmag\Shiplab\Helper\Manager; use Extmag\Shiplab\Model\LogsRepository; use Extmag\Shiplab\Model\ResourceModel\Logs\Collection; use Extmag\Shiplab\Model\ResourceModel\Logs\CollectionFactory; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Stdlib\DateTime\DateTime; use Psr\Log\LoggerInterface as Logs; class DbLogCleaner { /** * @var CollectionFactory */ protected $collectionFactory; /** * @var Logs */ protected $log; /** * @var DateTime */ protected $dateTime; /** * @var Manager */ protected $manager; /** * @var LogsRepository */ protected $logsRepository; /** * DbLogCleaner constructor. * * @param CollectionFactory $collectionFactory * @param LogsRepository $logsRepository * @param Logs $log * @param DateTime $dateTime * @param Manager $manager */ public function __construct( CollectionFactory $collectionFactory, LogsRepository $logsRepository, Logs $log, DateTime $dateTime, Manager $manager ) { $this->collectionFactory = $collectionFactory; $this->log = $log; $this->dateTime = $dateTime; $this->manager = $manager; $this->logsRepository = $logsRepository; } /** * @return void * @throws LocalizedException */ public function execute() { /** * @var Collection $collection */ $collection = $this->collectionFactory->create(); $collection->addFieldToSelect('entity_id'); $collection->addFieldToFilter( 'created_time', ['lt' => $this->dateTime->date('Y-m-d H:i:s', $this->dateTime->timestamp() - 31 * 86400)] ); $countPerPage = 200; $collection->setPageSize($countPerPage); $countPages = ceil($collection->getSize() / $countPerPage); for ($i = 1; $i <= $countPages; $i++) { $collection->clear(); $collection->setCurPage($i); foreach ($collection as $item) { $this->logsRepository->delete($item); } } } }