seregazhuk / reactphp-fswatch

Watch files for changes with fswatch and ReactPHP
8 stars 2 forks source link

Watch files for changes with fswatch and ReactPHP.

PHP Version Build Status Total Downloads

Latest Stable Version Latest Version Latest Unstable Version

License

Table of contents

Installation

Library requires fswatch - a cross-platform file change monitor with multiple environments.

You can install this package like this:

composer global seregazhuk/reactphp-fswatch

Usage

First of all, you create a watcher object providing a loop and fswatch command that you are going to run. For example if you want to listen to changes inside src directory:

$loop = \React\EventLoop\Factory::create();
$watcher = new \Seregazhuk\ReactFsWatch\FsWatch('src', $loop,);
$watcher->run();

$loop->run();

Once there are changes in the directory the watcher fires change event that contains an instance of Change object. To detect change you can listen to this event and handle the event object:

$watcher->on(
    'change',
    static function (Change $event) {
        $type = $event->isFile() ? 'File' : 'Dir';
        echo $type . ': ' . $event->file() . ' was changed' . PHP_EOL;
    }
);

Also, you can use a helper method onChange:

$watcher->onChange($callable);

To stop listening for filesytem use method stop():

$watcher->stop();

Filesystem Changes

On every change you receive Change object that contains different details about an event that happened in the filesystem. It has the following helper methods to examine the change:

License

MIT http://rem.mit-license.org