Skip to content

huang-yi/swoole-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swoole Watcher

This package provides a file watcher.

Installation

The current version only supports fswatch, so you'll have to install fswatch first.

# MacOS
brew install fswatch

# Linux (building from Source)
wget https://github.com/emcrisostomo/fswatch/releases/download/{VERSION}/fswatch-{VERSION}.tar.gz
tar -xzvf fswatch-{VERSION}.tar.gz
cd fswatch-{VERSION} && ./configure && make && sudo make install && sudo ldconfig

A user who wishes to build fswatch should get a release tarball

Then, make sure you have swoole extension installed in PHP.

pecl install swoole

Finally, you may install the Swoole Watcher via Composer:

composer require huang-yi/swoole-watcher

Usage

Create your watcher script like this:

<?php

require __DIR__ . '/vendor/autoload.php';

use HuangYi\Watcher\Commands\Fswatch;
use HuangYi\Watcher\Watcher;

$command = new Fswatch('/watched/path');

$command->setOptions([
    '--recursive' => true,
    '--filter-from' => '/path/to/filter-rules-file',
]);

$watcher = new Watcher($command);

// Registers a callback for an event.
$watcher->on(Fswatch::CREATED, function ($path) {
    // do something...
});

// or registers a default callback for any event.
$watcher->onChange(function ($events) {
    // do something...
});

$watcher->start();

License

Swoole Watcher is open-sourced software licensed under the MIT license.