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

0.1.1 2026-02-01 03:27 UTC

This package is auto-updated.

Last update: 2026-02-01 04:04:58 UTC


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.