定制 pato05/amphp-clamav 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

pato05/amphp-clamav

最新稳定版本:v2.0.0

Composer 安装命令:

composer require pato05/amphp-clamav

包简介

An asynchronous clamd wrapper written with amphp/socket

README 文档

README

license: MIT

An asynchronous ClamAV wrapper written with amphp/socket

Migrating from v1.x.x

The updated v2.0.0 brought some breaking changes because of the changes in the underlying amphp/amp. These underlying changes give a great boost to the asynchronous event loop, being it now based on Fibers instead of Generators.

Mostly you only need to remove the yield keyword before any calls to the library's asynchronous function. Learn more on Amp's Upgrade Guide.

Installing

composer require pato05/amphp-clamav

Examples

Ping and scan of a file/directory: examples/scan.php

Scanning from a ReadableStream (in this case a File instance which implements ReadableStream): examples/scan_stream.php

Using a TCP/IP socket instead

If you want to use a TCP/IP socket instead of a UNIX one, you should use the ClamAV\clamav() function prior to any other call, or just use a custom ClamAV instance:

\Amp\ClamAV\clamav('tcp://IP:PORT'); // to access it statically
// or
$clamav = new \Amp\ClamAV\ClamAV('tcp://IP:PORT');

Be aware that TCP/IP sockets may be slightly slower than UNIX ones.

Using MULTISCAN

MULTISCAN is supported but can only be used on non-session instances (due to a ClamAV limitation).

MULTISCAN allows you to make a multithreaded scan.

$result = \Amp\ClamAV\multiScan('FILEPATH');

Differences between running a session and without

Sessions run on the same socket connection, while non-session instances will reconnect to the socket for each command. The library supports both, it's up to you deciding which to use.

Instantiating a session is pretty straight forward, just use the ClamAV::session() method like this:

$clamSession = \Amp\ClamAV\session();

Though you MUST end every session by using the method Session::end():

$clamSession->end();

Be aware that in a session you can only execute ONE COMMAND AT A TIME, therefore, if you want to run more than one command in parallel, use the main ClamAV class instead.

Multiple Sessions can also be instantiated.

统计信息

  • 总下载量: 142
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-12-29