tourze / workerman-file-monitor
Workerman文件监听服务
0.0.1
2025-03-24 02:59 UTC
Requires
- php: ^8.1
- psr/log: ^3|^2|^1
- workerman/workerman: ^5.1
This package is auto-updated.
Last update: 2025-03-29 10:40:36 UTC
README
A file monitoring service for Workerman projects, extracted from webman framework.
Features
- Monitor file changes in specified directories
- Support multiple file extensions
- Auto reload when files are modified
- Memory usage monitoring
- PSR-3 logger support
- Cross-platform support (Linux/Unix/Windows)
Installation
composer require tourze/workerman-file-monitor
Quick Start
<?php use Tourze\Workerman\FileMonitor\FileMonitorWorker; use Workerman\Worker; // Create your Workerman worker $worker = new Worker('http://0.0.0.0:8080'); // Initialize file monitor new FileMonitorWorker( monitor_dir: '/path/to/your/code', // Directory to monitor monitor_extensions: ['php'], // File extensions to monitor memory_limit: '512M', // Optional: memory limit logger: $logger // Optional: PSR-3 logger ); Worker::runAll();
Configuration
monitor_dir
: Directory or array of directories to monitormonitor_extensions
: Array of file extensions to monitor (e.g., ['php', 'js'])memory_limit
: Memory limit for worker processes (default: 80% of php.ini memory_limit)logger
: PSR-3 compatible logger instance
Advanced Usage
Monitoring Multiple Directories
$monitor = new FileMonitorWorker( monitor_dir: ['/path/to/dir1', '/path/to/dir2'], monitor_extensions: ['php', 'html', 'js'] );
Using Custom Memory Limits
The memory_limit parameter accepts values in the format of '512M', '1G', etc. If not specified, it uses 80% of the value in php.ini.
Working with Loggers
The monitor works with any PSR-3 compatible logger:
$logger = new YourLogger(); $monitor = new FileMonitorWorker( monitor_dir: '/path/to/your/code', monitor_extensions: ['php'], logger: $logger );
Notes
- File monitoring is disabled in daemon mode
- Requires
exec()
function to be enabled in PHP - Memory monitoring is only available on Linux/Unix systems
- Minimum memory limit is 30MB
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.