sinflow/clamav

ClamAV PHP 客户端用于 Symfony

安装数量: 44,474

依赖者: 0

建议者: 1

安全性: 0

星标: 8

关注者: 4

分支: 2

开放问题: 2

类型:symfony-bundle

v1.1.2 2024-04-06 10:59 UTC

README

此库是一个用于与 ClamAV 守护进程交互的 PHP 客户端。它还提供可选的 Symfony 集成。

Workflow status

要求

您需要安装并配置 ClamAV 以接受套接字和/或网络连接: https://docs.clamav.net/manual/Installing.html

安装

$ composer require sineflow/clamav

作为独立库的使用

$scanner = new Scanner(new ScanStrategyClamdUnix($socket));
$scanner = new Scanner(new ScanStrategyClamdNetwork($host, $port));

作为 Symfony 扩展的使用

启用扩展

// config/bundles.php

return [
    // ...
    Sineflow\ClamAV\Bundle\SineflowClamAVBundle::class => ['all' => true],
];

配置

sineflow_clam_av:
    strategy: clamd_unix
    socket: "/var/run/clamav/clamd.ctl"

sineflow_clam_av:
    strategy: clamd_network
    host: 127.0.0.1
    port: 3310

扫描文件

use Sineflow\ClamAV\Scanner;
use Sineflow\ClamAV\Exception\FileScanException;
use Sineflow\ClamAV\Exception\SocketException;

public function myAction(Scanner $scanner)
{
    try {
        $scannedFile = $scanner->scan($file);
        if (!$scannedFile->isClean()) {
            echo $scannedFile->getVirusName();
        }
    } catch (SocketException $e) {
        ...
    } catch (FileScanException $e) {
        ...
    }
}