Download the PHP package pato05/amphp-clamav without Composer
On this page you can find all versions of the php package pato05/amphp-clamav. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download pato05/amphp-clamav
More information about pato05/amphp-clamav
Files in pato05/amphp-clamav
Package amphp-clamav
Short Description An asynchronous clamd wrapper written with amphp/socket
License MIT
Informations about the package amphp-clamav
amphp-clamav
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
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:
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.
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:
Though you MUST end every session by using the method Session::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 Session
s can also be instantiated.