felipechiodini / circuit-breaker
Circuit breaker pattern implementation in PHP
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/felipechiodini/circuit-breaker
Requires
- php: >=8.3
Requires (Dev)
- phpunit/phpunit: 12
README
A PHP implementation of the Circuit Breaker pattern.
Description
The Circuit Breaker pattern is a design pattern used in software development to detect failures and encapsulate the logic of preventing a failure from constantly recurring. This implementation provides a simple and flexible way to integrate circuit breaker functionality into your PHP applications.
Installation
Install via Composer:
composer require felipechiodini/circuit-breaker
Usage
use FelipeChiodini\CircuitBreaker\CircuitBreaker; use FelipeChiodini\CircuitBreaker\Contracts\Repository; use FelipeChiodini\CircuitBreaker\Contracts\CircuitBreakConfig; // Implement the Repository and CircuitBreakConfig interfaces $repository = new YourRepositoryImplementation(); $config = new YourConfigImplementation(); $circuitBreaker = new CircuitBreaker($repository); try { $result = $circuitBreaker->run(function() { // Your potentially failing operation return someApiCall(); }, $config); } catch (IsOpenException $e) { // Circuit is open, handle accordingly } catch (\Throwable $th) { // Other exceptions }
Testing
Run the tests using PHPUnit:
./vendor/bin/phpunit tests
License
This project is licensed under the MIT License - see the LICENSE file for details.