Inotify bindings for PHP 5, PHP 7, and PHP 8
This extension exposes the inotify API and some additional functions.
Installing with PIE
pie install arnaud-lb/inofity
pecl install memprof
Download the source and run the following commands in the source directory:
phpize
./configure
make
make install
The extension can be loaded on the command line, just for one script:
php -dextension=inofity.so script.php
Or permanently, in php.ini:
extension=inotify.so
Documentation is available at https://php.net/inotify
The goal of this extension is to expose the raw inotify API to PHP, while being memory safe and preventing resource leaks.
As the C inotify API returns file descriptors, this extension returns PHP streams.
This is useful for the following reasons:
The streams can be used with polling mechanisms such as stream_select()
or event loops such as ReactPHP or AMPHP. It's also possible to make the streams unblocking with stream_set_blocking()
.
As the inotify file descriptors are owned by PHP streams, they are managed by PHP. This ensures that the file descriptors are eventually closed, which prevents descriptor leaks.