Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/extmag/shiplab/Cron/DbLogCleaner.php
<?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);
            }
        }
    }
}

Spamworldpro Mini