lav45/watcher

File change watcher

Maintainers

Details

github.com/lav45/watcher

Source

Issues

Installs: 127

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/lav45/watcher

1.0.1 2025-05-18 15:30 UTC

This package is auto-updated.

Last update: 2025-10-18 16:26:39 UTC


README

Watcher listens and calls event handlers that happen to your files.

Usage example

use Lav45\Watcher\Event;
use Lav45\Watcher\Listener;
use Lav45\Watcher\Watcher;

$watcher = (new Watcher(new Listener()))
    ->on(IN_CREATE | IN_MOVED_TO, static function(Event $event) {
        echo 'Create ' . $event->path . "\n";
    })
    ->on(IN_DELETE | IN_MOVED_FROM, static function(Event $event) {
        echo 'Delete ' . $event->path . "\n";
    })
    ->on(IN_CLOSE_WRITE, static function(Event $event) {
        echo 'Update ' . $event->path . "\n";
    })
    ->withFilter(fn(Event $event): bool => \str_ends_with($event->path, '.json'))
    ->watchDirs([__DIR__]);

while (true) {
    $watcher->read();
    sleep(1);
}

Testing

docker run --rm -it -v $(pwd):/app composer install --ignore-platform-req=ext-inotify
docker run --rm -it -v $(pwd):/app composer test