arnaud-lb/inotify

Inotify bindings for PHP

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 45

Watchers: 4

Forks: 7

Open Issues: 1

Language:C

Type:php-ext

3.0.1 2025-02-24 15:06 UTC

This package is auto-updated.

Last update: 2025-04-22 20:01:10 UTC


README

Inotify bindings for PHP 5, PHP 7, and PHP 8

This extension exposes the inotify API and some additional functions.

Install

Installing with PIE

pie install arnaud-lb/inotify

Installing with PECL

pecl install memprof

Installing manually

Download the source and run the following commands in the source directory:

phpize
./configure
make
make install

Loading the extension

The extension can be loaded on the command line, just for one script:

php -dextension=inotify.so script.php

Or permanently, in php.ini:

extension=inotify.so

Documentation

Documentation is available at https://php.net/inotify

Goal

The goal of this extension is to expose the raw inotify API to PHP, while being memory safe and preventing resource leaks.

Streams

As the C inotify API returns file descriptors, this extension returns PHP streams.

This is useful for the following reasons:

I/O Polling

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().

Resource management

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.