Documentation

ExtUvLoop
in package
implements LoopInterface

FinalYes

An `ext-uv` based event loop.

This loop uses the uv PECL extension, that provides an interface to libuv library. libuv itself supports a number of system-specific backends (epoll, kqueue).

This loop is known to work with PHP 7+.

Tags
see
https://github.com/bwoebi/php-uv

Table of Contents

Interfaces

LoopInterface

Properties

$futureTickQueue  : mixed
$readStreams  : mixed
$running  : mixed
$signalEvents  : mixed
$signals  : mixed
$streamEvents  : mixed
$streamListener  : mixed
$timers  : mixed
$uv  : mixed
$writeStreams  : mixed

Methods

__construct()  : mixed
addPeriodicTimer()  : TimerInterface
Enqueue a callback to be invoked repeatedly after the given interval.
addReadStream()  : mixed
[Advanced] Register a listener to be notified when a stream is ready to read.
addSignal()  : void
Register a listener to be notified when a signal has been caught by this process.
addTimer()  : TimerInterface
Enqueue a callback to be invoked once after the given interval.
addWriteStream()  : mixed
[Advanced] Register a listener to be notified when a stream is ready to write.
cancelTimer()  : void
Cancel a pending timer.
futureTick()  : void
Schedule a callback to be invoked on a future tick of the event loop.
removeReadStream()  : mixed
Remove the read event listener for the given stream.
removeSignal()  : void
Removes a previously added signal listener.
removeWriteStream()  : mixed
Remove the write event listener for the given stream.
run()  : void
Run the event loop until there are no more tasks to perform.
stop()  : void
Instruct a running event loop to stop.
addStream()  : mixed
convertFloatSecondsToMilliseconds()  : int
createStreamListener()  : callable
Create a stream listener
pollStream()  : mixed
removeStream()  : mixed

Properties

$futureTickQueue

private mixed $futureTickQueue

$readStreams

private mixed $readStreams = array()

$signalEvents

private mixed $signalEvents = array()

$streamEvents

private mixed $streamEvents = array()

$streamListener

private mixed $streamListener

$writeStreams

private mixed $writeStreams = array()

Methods

addPeriodicTimer()

Enqueue a callback to be invoked repeatedly after the given interval.

public addPeriodicTimer(mixed $interval, mixed $callback) : TimerInterface
Parameters
$interval : mixed

The number of seconds to wait before execution.

$callback : mixed

The callback to invoke.

Return values
TimerInterface

addReadStream()

[Advanced] Register a listener to be notified when a stream is ready to read.

public addReadStream(mixed $stream, mixed $listener) : mixed
Parameters
$stream : mixed

The PHP stream resource to check.

$listener : mixed

Invoked when the stream is ready.

addSignal()

Register a listener to be notified when a signal has been caught by this process.

public addSignal(mixed $signal, mixed $listener) : void

This is useful to catch user interrupt signals or shutdown signals from tools like supervisor or systemd.

The second parameter MUST be a listener callback function that accepts the signal as its only parameter. If you don't use the signal inside your listener callback function you MAY use a function which has no parameters at all.

The listener callback function MUST NOT throw an Exception. The return value of the listener callback function will be ignored and has no effect, so for performance reasons you're recommended to not return any excessive data structures.

$loop->addSignal(SIGINT, function (int $signal) {
    echo 'Caught user interrupt signal' . PHP_EOL;
});

See also example #4.

Signaling is only available on Unix-like platforms, Windows isn't supported due to operating system limitations. This method may throw a BadMethodCallException if signals aren't supported on this platform, for example when required extensions are missing.

Note: A listener can only be added once to the same signal, any attempts to add it more than once will be ignored.

Parameters
$signal : mixed
$listener : mixed

addTimer()

Enqueue a callback to be invoked once after the given interval.

public addTimer(mixed $interval, mixed $callback) : TimerInterface
Parameters
$interval : mixed

The number of seconds to wait before execution.

$callback : mixed

The callback to invoke.

Return values
TimerInterface

addWriteStream()

[Advanced] Register a listener to be notified when a stream is ready to write.

public addWriteStream(mixed $stream, mixed $listener) : mixed
Parameters
$stream : mixed

The PHP stream resource to check.

$listener : mixed

Invoked when the stream is ready.

futureTick()

Schedule a callback to be invoked on a future tick of the event loop.

public futureTick(mixed $listener) : void
Parameters
$listener : mixed

The callback to invoke.

removeReadStream()

Remove the read event listener for the given stream.

public removeReadStream(mixed $stream) : mixed
Parameters
$stream : mixed

The PHP stream resource.

removeSignal()

Removes a previously added signal listener.

public removeSignal(mixed $signal, mixed $listener) : void
$loop->removeSignal(SIGINT, $listener);

Any attempts to remove listeners that aren't registered will be ignored.

Parameters
$signal : mixed
$listener : mixed

removeWriteStream()

Remove the write event listener for the given stream.

public removeWriteStream(mixed $stream) : mixed
Parameters
$stream : mixed

The PHP stream resource.

run()

Run the event loop until there are no more tasks to perform.

public run() : void

stop()

Instruct a running event loop to stop.

public stop() : void

addStream()

private addStream(mixed $stream) : mixed
Parameters
$stream : mixed

convertFloatSecondsToMilliseconds()

private convertFloatSecondsToMilliseconds(float $interval) : int
Parameters
$interval : float
Return values
int

createStreamListener()

Create a stream listener

private createStreamListener() : callable
Return values
callable

Returns a callback

pollStream()

private pollStream(mixed $stream) : mixed
Parameters
$stream : mixed

removeStream()

private removeStream(mixed $stream) : mixed
Parameters
$stream : mixed

        
On this page

Search results