PHPackages                             tax16/tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. tax16/tools

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

tax16/tools
===========

tools bundle

1.0.2(1y ago)15MITPHPPHP &gt;=8.2

Since Apr 17Pushed 1y ago1 watchersCompare

[ Source](https://github.com/tax16/ToolsBundle)[ Packagist](https://packagist.org/packages/tax16/tools)[ RSS](/packages/tax16-tools/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (16)Versions (4)Used By (0)

ToolsBundle 📊
=============

[](#toolsbundle-)

> A Symfony bundle compatible with PHP 8.2+ and symfony 6+

🚀 Installation
--------------

[](#-installation)

**Add the bundle via Composer**
Run the following command in your terminal:

```
composer require tax16/tools
```

⚙️ Features
-----------

[](#️-features)

- **Retry**:
    - Retry logic with customizable delay
    - Configurable max attempts
    - Easy integration with Symfony or standalone PHP

⚙️ How It Works — Retry via Dynamic Proxy
-----------------------------------------

[](#️-how-it-works--retry-via-dynamic-proxy)

This bundle uses [`ocramius/proxy-manager`](https://github.com/Ocramius/ProxyManager) to dynamically intercept method calls and apply **automatic retry logic** based on PHP attributes.

### 🧠 Behind the Scenes

[](#-behind-the-scenes)

A dedicated class, `RetryProxyFactory`, creates a **dynamic proxy** around any service. This proxy:

- Intercepts **public methods annotated** with the `#[Retry]` attribute
- Retries the execution when an exception is thrown
- Logs each failed attempt using `Psr\Log\LoggerInterface`
- Honors the parameters `attempts` (number of retries) and `delay` (delay between attempts in seconds)

This behavior is completely transparent to your application code.

### 🔁 Example: Using the `#[Retry]` Attribute

[](#-example-using-the-retry-attribute)

```
use Tax16\ToolsBundle\Core\Domain\Retry\Attribut\Retry;

class ExternalApiClient
{
    #[Retry(attempts: 3, delay: 1)]
    public function fetchData(): void
    {
        // This method will be retried up to 3 times with a 1s delay on failure
    }
}
```

🤝 Contributing
--------------

[](#-contributing)

> The application is designed in hexagonal architecture:

[![Network design](doc/img/hexagonal.png)](doc/img/hexagonal.png)

> To contribute to the SystemCheckBundle, follow these steps:

1. **Clone the repository**:

    ```
    git clone https://github.com/tax16/ToolsBundle
    ```
2. **Install dependencies**:

    ```
    make install
    ```
3. **Run GrumPHP for code quality checks**:

    ```
    make grumphp
    ```
4. **Run tests**:

    ```
    make phpunit
    ```

Happy coding! 🎉

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance47

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

3

Last Release

393d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2d6dee77b2b8a5eb1859c7e7ce7bbc422f89ff7d1ac648ad25ed77444d5c4e51?d=identicon)[tax16](/maintainers/tax16)

---

Top Contributors

[![tahiana-rakotonirina](https://avatars.githubusercontent.com/u/184938002?v=4)](https://github.com/tahiana-rakotonirina "tahiana-rakotonirina (4 commits)")

###  Code Quality

TestsCodeception

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/tax16-tools/health.svg)

```
[![Health](https://phpackages.com/badges/tax16-tools/health.svg)](https://phpackages.com/packages/tax16-tools)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[kadirov/api-starter-kit

443.9k](/packages/kadirov-api-starter-kit)[easycorp/easyadmin-demo

EasyAdmin Demo Application

145.7k](/packages/easycorp-easyadmin-demo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
