Skip to content

Installation

Composer

composer require skie/signal_handler

Load the Plugin

Ensure the SignalHandler Plugin is loaded in your src/Application.php file

$this->addPlugin(\SignalHandler\Plugin::class);

The plugin automatically registers signal event listeners and integrates with CakePHP's console system. No additional configuration is required for basic signal handling functionality.

Platform Support

The plugin automatically detects your platform and uses the appropriate signal handling method:

  • Linux: Uses pcntl extension for signal handling
  • Windows: Uses native Windows API for control events
  • macOS: Uses pcntl extension (same as Linux)

The plugin gracefully degrades when signal handling is not available on your platform.

Signal Handling Availability

The plugin checks for signal handling availability on your platform:

  • Linux: Requires pcntl extension
  • Windows: Requires sapi_windows_set_ctrl_handler function
  • macOS: Requires pcntl extension

If signal handling is not available, the plugin will continue to work without signal handling capabilities.

Automatic Integration

The plugin automatically integrates with CakePHP's console system through event listeners:

  • Registers signal handlers before command execution
  • Cleans up signal handlers after command completion
  • Dispatches signal events during command execution
  • Integrates with CakePHP's service container

No manual configuration is required for basic signal handling functionality.

Customization

The plugin is designed to be extensible and customizable:

  • Implement SignalableCommandInterface for custom signal handling
  • Use SignalHandlerTrait for callback-based signal handling
  • Create custom signal event listeners
  • Extend platform-specific signal handlers

For detailed customization options, see the Integration documentation.

Released under the MIT License.