pato05/amphp-clamav 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

pato05/amphp-clamav

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.

统计信息

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

GitHub 信息

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

其他信息

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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固