jefyokta / php-file-watcher
A lightweight native file watcher for PHP using FFI
Installs: 8
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:C
README
Lightweight, cross-platform file watcher for Linux and macOS using native OS facilities (inotify
on Linux, kqueue
on macOS), exposed via PHP FFI.
Requirements
- Operating System: Linux or macOS
- PHP: FFI extension enabled (
--enable-ffi
orffi.enable=1
inphp.ini
) - Composer: for installation and autoloading
Installation
Install the package via Composer:
composer require jefyokta/php-file-watcher
Usage
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.
Notes
- 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.
Build Native Library
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.
License
MIT License