hnhdigital-os / laravel-folder-watcher by bluora

Provides a Laravel console command that can watch a given folder, and any changes are passed to the provided command script.
Package Data
Maintainer Username: bluora
Maintainer Contact: (Rocco Howard)
Package Create Date: 2016-11-10
Package Last Update: 2019-02-05
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2020-05-24 15:07:31
Package Statistics
Total Downloads: 135
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 6
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

Laravel Folder Watcher

Provides a Laravel console command that can watch a given folder, and any changes are passed to the provided command script.

Useful for running as a background task that initiates a virus scan on uploaded files.

Checkout our standalone command line tool inspired by the work we did here.

Latest Stable Version Total Downloads Latest Unstable Version License

Build Status StyleCI Test Coverage Issue Count Code Climate

This package has been developed by H&H|Digital, an Australian botique developer. Visit us at


Via composer:

$ composer require-dev hnhdigital-os/laravel-folder-watcher dev-master

Enable the console command by editing app/Console/Kernel.php:

     * The Artisan commands provided by your application.
     * @var array
    protected $commands = [


Run the console command using the following:


Load a given configuration file. This will load a background process for each folder/binary combination.

# php artisan watcher load --config-file=***


Loads a given watch path and binary as a background process.

# php artisan watcher background --watch-path=*** --binary=*** --script-arguments=***


Runs a given watch path and binary.

# php artisan watcher run --watch-path=*** --binary=*** --script-arguments=***


Lists all the background watch processes currently active.

# php artisan watcher list


Provide a process id (from the list action) to stop it running. Using --pid=all will stop all processes.

# php artisan watcher kill --pid=***

Configuration file

You can provide any yaml based file as input to this command using the load action and the --config-file argument.

The yaml file is in the following format:

[folder path]:
    - [binary]: [arguments]
  • [folder path]: The directory that will be watched for changes. The watcher recursively adds all child folders.
  • [binary]: The binary that we will run. This could be an absolute path or an alias. (eg php)
  • [arguments]: The arguments that need to be given to the binary. Use the placeholders below to allow the watcher to pass this through.

Command placeholders

  • {{file-path}}: The absolute file path to the changed file.
  • {{root-path}}: The base directory of the watcher.
  • {{file-removed}}: Boolean (1 or 0) to indicate if the file was deleted.


Please see CONTRIBUTING for details.



The MIT License (MIT). Please see License File for more information.