Lightweight, cross-platform file watcher for Linux and macOS using native OS facilities (inotify
on Linux, kqueue
on macOS), exposed via PHP FFI.
- Operating System: Linux or macOS
- PHP: FFI extension enabled (
--enable-ffi
orffi.enable=1
inphp.ini
) - Composer: for installation and autoloading
Install the package via Composer:
composer require jefyokta/php-file-watcher
use Jefyokta\PhpFileWatcher\Watcher;
Watcher::onChange(function(string $file) {
echo "File Changed: $file\n";
})->watch(__DIR__);
onChange(callable $callback)
— Register a callback to be invoked on each changed file.watch(string $directory)
— Start watching the specified directory recursively.
- This package relies on PHP's FFI and a compiled native library (
libfilewatcher.so
or.dylib
), so ensure the native library is built for your platform. - Recursive watching of directories is supported.
- Suitable for lightweight monitoring in CLI PHP scripts or long-running daemons.
If you want to build the native library yourself:
./build.sh
This script detects your OS and compiles the appropriate C source code into the shared library.
MIT License