From 3f47b876879b7577bdd3d3c0ab8a084ab1742258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Thu, 29 Sep 2022 16:58:10 +0200 Subject: Migrate away from deprecated interfaces and cleanup typing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/BackgroundJob/BackgroundScanner.php | 50 ++++++++++------------------- lib/Item.php | 56 ++++++++++++--------------------- lib/ItemFactory.php | 52 +++++++++++------------------- lib/Scanner/ExternalClam.php | 17 ++++------ lib/Scanner/ExternalKaspersky.php | 10 +++--- lib/Scanner/ICAP.php | 20 +++++------- lib/Scanner/LocalClam.php | 15 +++++---- lib/Scanner/ScannerBase.php | 46 +++++++-------------------- lib/Status.php | 11 +++---- lib/StatusFactory.php | 23 +++----------- tests/AvirWrapperTest.php | 8 ++--- tests/Scanner/ExternalKasperskyTest.php | 4 +-- tests/Scanner/ICAPTest.php | 4 +-- tests/StatusTest.php | 4 +-- 14 files changed, 111 insertions(+), 209 deletions(-) diff --git a/lib/BackgroundJob/BackgroundScanner.php b/lib/BackgroundJob/BackgroundScanner.php index 1e41e50..36ab7c4 100644 --- a/lib/BackgroundJob/BackgroundScanner.php +++ b/lib/BackgroundJob/BackgroundScanner.php @@ -10,51 +10,35 @@ declare(strict_types=1); namespace OCA\Files_Antivirus\BackgroundJob; -use OC\BackgroundJob\TimedJob; use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\ItemFactory; use OCA\Files_Antivirus\Scanner\ScannerFactory; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\Files\File; use OCP\Files\IMimeTypeLoader; -use OCP\IDBConnection; use OCP\Files\IRootFolder; -use OCP\ILogger; +use OCP\IDBConnection; use OCP\IUser; use OCP\IUserManager; +use OC\BackgroundJob\TimedJob; +use Psr\Log\LoggerInterface; class BackgroundScanner extends TimedJob { - /** @var IRootFolder */ - protected $rootFolder; - - /** @var ScannerFactory */ - private $scannerFactory; - - /** @var AppConfig */ - private $appConfig; - - /** @var ILogger */ - protected $logger; - - /** @var IUserManager */ - protected $userManager; - - /** @var IDBConnection */ - protected $db; - - /** @var IMimeTypeLoader */ - protected $mimeTypeLoader; - - /** @var ItemFactory */ - protected $itemFactory; - /** @var bool */ - private $isCLI; + protected IRootFolder $rootFolder; + private ScannerFactory $scannerFactory; + private AppConfig $appConfig; + protected LoggerInterface $logger; + protected IUserManager $userManager; + protected IDBConnection $db; + protected IMimeTypeLoader $mimeTypeLoader; + protected ItemFactory $itemFactory; + private bool $isCLI; public function __construct( ScannerFactory $scannerFactory, AppConfig $appConfig, IRootFolder $rootFolder, - ILogger $logger, + LoggerInterface $logger, IUserManager $userManager, IDBConnection $db, IMimeTypeLoader $mimeTypeLoader, @@ -89,7 +73,7 @@ class BackgroundScanner extends TimedJob { try { $result = $this->getUnscannedFiles(); } catch (\Exception $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return; } @@ -131,7 +115,7 @@ class BackgroundScanner extends TimedJob { break; } } catch (\Exception $e) { - $this->logger->logException($e, ['app' => 'files_antivirus']); + $this->logger->error($e->getMessage(), ['exception' => $e]); } } @@ -144,7 +128,7 @@ class BackgroundScanner extends TimedJob { try { $result = $this->getToRescanFiles(); } catch (\Exception $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return; } @@ -191,7 +175,7 @@ class BackgroundScanner extends TimedJob { try { $result = $this->getOutdatedFiles(); } catch (\Exception $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return; } diff --git a/lib/Item.php b/lib/Item.php index a6da6c8..7a25c09 100644 --- a/lib/Item.php +++ b/lib/Item.php @@ -1,4 +1,7 @@ * This file is licensed under the Affero General Public License version 3 or @@ -11,13 +14,13 @@ namespace OCA\Files_Antivirus; use OCA\Files_Antivirus\Activity\Provider; use OCA\Files_Antivirus\AppInfo\Application; use OCA\Files_Antivirus\Db\ItemMapper; +use OCA\Files_Trashbin\Trash\ITrashManager; use OCP\Activity\IManager as ActivityManager; -use OCP\App; use OCP\AppFramework\Db\DoesNotExistException; +use OCP\App\IAppManager; use OCP\Files\File; use OCP\Files\IRootFolder; -use OCA\Files_Trashbin\Trash\ITrashManager; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class Item { /** @@ -27,44 +30,27 @@ class Item { */ protected $fileHandle; - /** @var AppConfig */ - private $config; - - /** @var ActivityManager */ - private $activityManager; - - /** @var ItemMapper */ - private $itemMapper; - - /** @var ILogger */ - private $logger; - - /** @var IRootFolder */ - private $rootFolder; - - /** @var File */ - private $file; - private $isCron; + private AppConfig $config; + private ActivityManager $activityManager; + private ItemMapper $itemMapper; + private LoggerInterface $logger; + private IRootFolder $rootFolder; + private IAppManager $appManager; + private File $file; + private bool $isCron; /** * Item constructor. - * - * @param AppConfig $appConfig - * @param ActivityManager $activityManager - * @param ItemMapper $itemMapper - * @param ILogger $logger - * @param IRootFolder $rootFolder - * @param File $file - * @param bool $isCron */ public function __construct( AppConfig $appConfig, ActivityManager $activityManager, ItemMapper $itemMapper, - ILogger $logger, + LoggerInterface $logger, IRootFolder $rootFolder, + IAppManager $appManager, File $file, - $isCron + bool $isCron ) { $this->config = $appConfig; $this->activityManager = $activityManager; @@ -177,10 +163,8 @@ class Item { /** * Check if the end of file is reached - * - * @return boolean */ - private function feof() { + private function feof(): bool { $isDone = feof($this->fileHandle); if ($isDone) { $this->logDebug('Scan is done'); @@ -213,13 +197,13 @@ class Item { */ private function deleteFile(): void { //prevent from going to trashbin - if (App::isEnabled('files_trashbin')) { + if ($this->appManager->isEnabledForUser('files_trashbin')) { /** @var ITrashManager $trashManager */ $trashManager = \OC::$server->get(ITrashManager::class); $trashManager->pauseTrash(); } $this->file->delete(); - if (App::isEnabled('files_trashbin')) { + if ($this->appManager->isEnabledForUser('files_trashbin')) { /** @var ITrashManager $trashManager */ $trashManager = \OC::$server->get(ITrashManager::class); $trashManager->resumeTrash(); diff --git a/lib/ItemFactory.php b/lib/ItemFactory.php index e2039a1..32b1ee9 100644 --- a/lib/ItemFactory.php +++ b/lib/ItemFactory.php @@ -1,8 +1,12 @@ * * @author Roeland Jago Douma + * @author Côme Chilliet * * @license GNU AGPL version 3 or any later version * @@ -27,38 +31,22 @@ use OCA\Files_Antivirus\Db\ItemMapper; use OCP\Activity\IManager as ActivityManager; use OCP\Files\File; use OCP\Files\IRootFolder; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class ItemFactory { - /** @var AppConfig */ - private $config; - - /** @var ActivityManager */ - private $activityManager; - - /** @var ItemMapper */ - private $itemMapper; - - /** @var ILogger */ - private $logger; - - /** @var IRootFolder */ - private $rootFolder; + private AppConfig $config; + private ActivityManager $activityManager; + private ItemMapper $itemMapper; + private LoggerInterface $logger; + private IRootFolder $rootFolder; - /** - * ItemFactory constructor. - * - * @param AppConfig $appConfig - * @param ActivityManager $activityManager - * @param ItemMapper $itemMapper - * @param ILogger $logger - * @param IRootFolder $rootFolder - */ - public function __construct(AppConfig $appConfig, - ActivityManager $activityManager, - ItemMapper $itemMapper, - ILogger $logger, - IRootFolder $rootFolder) { + public function __construct( + AppConfig $appConfig, + ActivityManager $activityManager, + ItemMapper $itemMapper, + LoggerInterface $logger, + IRootFolder $rootFolder + ) { $this->config = $appConfig; $this->activityManager = $activityManager; $this->itemMapper = $itemMapper; @@ -66,11 +54,7 @@ class ItemFactory { $this->rootFolder = $rootFolder; } - /** - * @param File $file - * @return Item - */ - public function newItem(File $file, $isCron = false) { + public function newItem(File $file, bool $isCron = false): Item { return new Item( $this->config, $this->activityManager, diff --git a/lib/Scanner/ExternalClam.php b/lib/Scanner/ExternalClam.php index 6cf34bd..b9d4654 100644 --- a/lib/Scanner/ExternalClam.php +++ b/lib/Scanner/ExternalClam.php @@ -1,4 +1,7 @@ * This file is licensed under the Affero General Public License version 3 or @@ -11,24 +14,16 @@ namespace OCA\Files_Antivirus\Scanner; use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\StatusFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class ExternalClam extends ScannerBase { /** * Daemon/socket mode - * @var bool */ - private $useSocket; + private bool $useSocket; - /** - * External constructor. - * - * @param AppConfig $config - * @param ILogger $logger - * @param StatusFactory $statusFactory - */ - public function __construct(AppConfig $config, ILogger $logger, StatusFactory $statusFactory) { + public function __construct(AppConfig $config, LoggerInterface $logger, StatusFactory $statusFactory) { parent::__construct($config, $logger, $statusFactory); $this->useSocket = $this->appConfig->getAvMode() === 'socket'; } diff --git a/lib/Scanner/ExternalKaspersky.php b/lib/Scanner/ExternalKaspersky.php index 878bc9b..6b63e2e 100644 --- a/lib/Scanner/ExternalKaspersky.php +++ b/lib/Scanner/ExternalKaspersky.php @@ -1,6 +1,7 @@ * @@ -27,16 +28,15 @@ use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\Status; use OCA\Files_Antivirus\StatusFactory; use OCP\Http\Client\IClientService; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class ExternalKaspersky extends ScannerBase { - /** @var IClientService IClientService */ - private $clientService; - private $chunkSize; + private IClientService $clientService; + private int $chunkSize; public function __construct( AppConfig $config, - ILogger $logger, + LoggerInterface $logger, StatusFactory $statusFactory, IClientService $clientService ) { diff --git a/lib/Scanner/ICAP.php b/lib/Scanner/ICAP.php index 2821076..7dae418 100644 --- a/lib/Scanner/ICAP.php +++ b/lib/Scanner/ICAP.php @@ -1,6 +1,7 @@ * @@ -28,23 +29,18 @@ use OCA\Files_Antivirus\ICAP\ICAPClient; use OCA\Files_Antivirus\ICAP\ICAPRequest; use OCA\Files_Antivirus\Status; use OCA\Files_Antivirus\StatusFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class ICAP extends ScannerBase { - /** @var ICAPClient */ - private $icapClient; - /** @var ?ICAPRequest */ - private $request; - /** @var string */ - private $service; - /** @var string */ - private $virusHeader; - /** @var int */ - private $chunkSize; + private ICAPClient $icapClient; + private ?ICAPRequest $request; + private string $service; + private string $virusHeader; + private int $chunkSize; public function __construct( AppConfig $config, - ILogger $logger, + LoggerInterface $logger, StatusFactory $statusFactory ) { parent::__construct($config, $logger, $statusFactory); diff --git a/lib/Scanner/LocalClam.php b/lib/Scanner/LocalClam.php index 2d314a9..9ce7653 100644 --- a/lib/Scanner/LocalClam.php +++ b/lib/Scanner/LocalClam.php @@ -1,4 +1,7 @@ * This file is licensed under the Affero General Public License version 3 or @@ -6,25 +9,21 @@ * See the COPYING-README file. */ - namespace OCA\Files_Antivirus\Scanner; use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\StatusFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class LocalClam extends ScannerBase { - /** - * @var string - */ - protected $avPath; + protected string $avPath; /** * STDIN and STDOUT descriptors * @var array of resources */ - private $pipes = []; + private array $pipes = []; /** * Process handle @@ -32,7 +31,7 @@ class LocalClam extends ScannerBase { */ private $process; - public function __construct(AppConfig $config, ILogger $logger, StatusFactory $statusFactory) { + public function __construct(AppConfig $config, LoggerInterface $logger, StatusFactory $statusFactory) { parent::__construct($config, $logger, $statusFactory); // get the path to the executable diff --git a/lib/Scanner/ScannerBase.php b/lib/Scanner/ScannerBase.php index d964266..4914b2d 100644 --- a/lib/Scanner/ScannerBase.php +++ b/lib/Scanner/ScannerBase.php @@ -27,57 +27,34 @@ use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\Item; use OCA\Files_Antivirus\Status; use OCA\Files_Antivirus\StatusFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; abstract class ScannerBase implements IScanner { /** * Scan result - * - * @var Status */ - protected $status; + protected Status $status; /** * If scanning was done part by part * the first detected infected part is stored here - * - * @var Status */ - protected $infectedStatus; + protected Status $infectedStatus; - /** @var int */ - protected $byteCount; + protected int $byteCount; /** @var resource */ protected $writeHandle; - /** @var AppConfig */ - protected $appConfig; - - /** @var ILogger */ - protected $logger; - - /** @var StatusFactory */ - protected $statusFactory; - - /** @var string */ - protected $lastChunk; - - /** @var bool */ - protected $isLogUsed = false; + protected AppConfig $appConfig; + protected LoggerInterface $logger; + protected StatusFactory $statusFactory; + protected string $lastChunk; + protected bool $isLogUsed = false; + protected bool $isAborted = false; - /** @var bool */ - protected $isAborted = false; - - /** - * ScannerBase constructor. - * - * @param AppConfig $config - * @param ILogger $logger - * @param StatusFactory $statusFactory - */ - public function __construct(AppConfig $config, ILogger $logger, StatusFactory $statusFactory) { + public function __construct(AppConfig $config, LoggerInterface $logger, StatusFactory $statusFactory) { $this->appConfig = $config; $this->logger = $logger; $this->statusFactory = $statusFactory; @@ -88,7 +65,6 @@ abstract class ScannerBase implements IScanner { */ abstract protected function shutdownScanner(); - /** * @return Status */ diff --git a/lib/Status.php b/lib/Status.php index 688eb51..d1077cd 100644 --- a/lib/Status.php +++ b/lib/Status.php @@ -10,7 +10,7 @@ namespace OCA\Files_Antivirus; use OCA\Files_Antivirus\Db\Rule; use OCA\Files_Antivirus\Db\RuleMapper; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class Status { @@ -39,11 +39,8 @@ class Status { */ protected $details = ''; - /** @var RuleMapper */ - protected $ruleMapper; - - /** @var ILogger */ - protected $logger; + protected RuleMapper $ruleMapper; + protected LoggerInterface $logger; /** * Status constructor. @@ -51,7 +48,7 @@ class Status { * @param RuleMapper $ruleMapper * @param ILogger $logger */ - public function __construct(RuleMapper $ruleMapper, ILogger $logger) { + public function __construct(RuleMapper $ruleMapper, LoggerInterface $logger) { $this->ruleMapper = $ruleMapper; $this->logger = $logger; } diff --git a/lib/StatusFactory.php b/lib/StatusFactory.php index 7f07d7c..94fe26f 100644 --- a/lib/StatusFactory.php +++ b/lib/StatusFactory.php @@ -24,31 +24,18 @@ namespace OCA\Files_Antivirus; use OCA\Files_Antivirus\Db\RuleMapper; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class StatusFactory { + private RuleMapper $ruleMapper; + private LoggerInterface $logger; - /** @var RuleMapper */ - private $ruleMapper; - - /** @var ILogger */ - private $logger; - - /** - * StatusFactory constructor. - * - * @param RuleMapper $ruleMapper - * @param ILogger $logger - */ - public function __construct(RuleMapper $ruleMapper, ILogger $logger) { + public function __construct(RuleMapper $ruleMapper, LoggerInterface $logger) { $this->ruleMapper = $ruleMapper; $this->logger = $logger; } - /** - * @return Status - */ - public function newStatus() { + public function newStatus(): Status { return new Status( $this->ruleMapper, $this->logger diff --git a/tests/AvirWrapperTest.php b/tests/AvirWrapperTest.php index 84349a0..7343701 100644 --- a/tests/AvirWrapperTest.php +++ b/tests/AvirWrapperTest.php @@ -10,13 +10,13 @@ namespace OCA\Files_Antivirus\Tests; -use OC\Files\Storage\Temporary; use OCA\Files_Antivirus\AvirWrapper; use OCA\Files_Antivirus\Scanner\ExternalClam; use OCA\Files_Antivirus\Scanner\ScannerFactory; use OCA\Files_Antivirus\StatusFactory; use OCP\Activity\IManager; -use OCP\ILogger; +use OC\Files\Storage\Temporary; +use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Test\Traits\UserTrait; @@ -40,7 +40,7 @@ class AvirWrapperTest extends TestBase { /** @var Temporary */ protected $storage; - /** @var ILogger */ + /** @var LoggerInterface */ protected $logger; /** @var AvirWrapper */ @@ -51,7 +51,7 @@ class AvirWrapperTest extends TestBase { $this->createUser(self::UID, self::PWD); $this->storage = new Temporary([]); - $this->logger = $this->createMock(ILogger::class); + $this->logger = $this->createMock(LoggerInterface::class); $scanner = new ExternalClam( $this->config, diff --git a/tests/Scanner/ExternalKasperskyTest.php b/tests/Scanner/ExternalKasperskyTest.php index 639a6cb..a570cee 100644 --- a/tests/Scanner/ExternalKasperskyTest.php +++ b/tests/Scanner/ExternalKasperskyTest.php @@ -28,7 +28,7 @@ use OCA\Files_Antivirus\Scanner\ExternalKaspersky; use OCA\Files_Antivirus\Scanner\ScannerBase; use OCA\Files_Antivirus\StatusFactory; use OCP\Http\Client\IClientService; -use OCP\ILogger; +use Psr\Log\LoggerInterface; /** * @group DB @@ -39,7 +39,7 @@ class ExternalKasperskyTest extends ScannerBaseTest { $this->markTestSkipped("Set KASPERSKY_HOST and KASPERSKY_PORT to enable kaspersky tests"); } - $logger = $this->createMock(ILogger::class); + $logger = $this->createMock(LoggerInterface::class); $config = $this->createPartialMock(AppConfig::class, ['getter']); $config->method('getter') ->willReturnCallback(function ($key) { diff --git a/tests/Scanner/ICAPTest.php b/tests/Scanner/ICAPTest.php index 13061cd..dfd7cca 100644 --- a/tests/Scanner/ICAPTest.php +++ b/tests/Scanner/ICAPTest.php @@ -27,7 +27,7 @@ use OCA\Files_Antivirus\AppConfig; use OCA\Files_Antivirus\Scanner\ICAP; use OCA\Files_Antivirus\Scanner\ScannerBase; use OCA\Files_Antivirus\StatusFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; /** * @group DB @@ -38,7 +38,7 @@ class ICAPTest extends ScannerBaseTest { $this->markTestSkipped("Set ICAP_HOST, ICAP_PORT, ICAP_REQUEST and ICAP_HEADER to enable icap tests"); } - $logger = $this->createMock(ILogger::class); + $logger = $this->createMock(LoggerInterface::class); $config = $this->createPartialMock(AppConfig::class, ['getter']); $config->method('getter') ->willReturnCallback(function ($key) { diff --git a/tests/StatusTest.php b/tests/StatusTest.php index fa25daa..cf25352 100644 --- a/tests/StatusTest.php +++ b/tests/StatusTest.php @@ -9,7 +9,7 @@ namespace OCA\Files_Antivirus\Tests; use \OCA\Files_Antivirus\Db\RuleMapper; -use OCP\ILogger; +use Psr\Log\LoggerInterface; /** * @group DB @@ -35,7 +35,7 @@ class StatusTest extends TestBase { // Testing status codes $testStatus = new \OCA\Files_Antivirus\Status( $this->ruleMapper, - $this->createMock(ILogger::class) + $this->createMock(LoggerInterface::class) ); $testStatus->parseResponse('dummy : OK', self::TEST_CLEAN); -- cgit v1.2.3