PHPackages                             kikwik/debounce-bundle - 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. kikwik/debounce-bundle

ActiveSymfony-bundle

kikwik/debounce-bundle
======================

Integration with https://debounce.io/ for Symfony 4.4

v1.0.7(1mo ago)036MITPHPPHP &gt;=7.1.3

Since Jun 14Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/kikwik/debounce-bundle)[ Packagist](https://packagist.org/packages/kikwik/debounce-bundle)[ RSS](/packages/kikwik-debounce-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (6)Versions (9)Used By (0)

KikwikDebounceBundle
====================

[](#kikwikdebouncebundle)

 integration for symfony 4

Installation
------------

[](#installation)

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

```
$ composer require kikwik/debounce-bundle
```

Configuration
-------------

[](#configuration)

Create the `config/packages/kikwik_debounce.yaml` config file, set the `api_key` parameter and define the return codes (as array) which you consider safe for your application (default is \[4,5,7,8\])

```
kikwik_debounce:
    api_key: '%env(DEBOUNCE_API_KEY)%'
    safe_codes: [4,5,7,8]
```

create the api from  and copy it in your .env file

```
DEBOUNCE_API_KEY=xxxxxxxxxxx
```

Usage
-----

[](#usage)

Autowire the `Kikwik\DebounceBundle\Service\DebounceInterface` service in your controller and call `check` method:

```
namespace App\Controller;

use Kikwik\DebounceBundle\Service\DebounceInterface;

class HomeController extends AbstractController
{
    /**
     * @Route("/debounce/{email}", name="app_debounce")
     */
    public function debounce($email, DebounceInterface $debounce)
    {
        $message = '';
        $result = $debounce->check($email);
        if($result['success']==1)
        {
            switch($result['debounce']['code'])
            {
                case '1':
                    $message = 'Syntax, Not an email, Not safe';
                    break;
                case '2':
                    $message = 'Spam Trap, Spam-trap by ESPs, Not safe';
                    break;
                case '3':
                    $message = 'Disposable, A temporary, disposable address, Not safe';
                    break;
                case '4':
                    $message = 'Accept-All, A domain-wide setting, Maybe safe';
                    break;
                case '5':
                    $message = 'Deliverable, Verified as real address, Safe';
                    break;
                case '6':
                    $message = 'Invalid, Verified as invalid (Bounce), Not safe';
                    break;
                case '7':
                    $message = 'Unknown, The server cannot be reached, Not safe';
                    break;
                case '8':
                    $message = 'Role, Role accounts such as info, support, etc, Maybe safe';
                    break;
            }
        }
        else
        {
            $message = $result['debounce']['error'];
        }
        return new Response($message);
    }
}
```

or use the `Kikwik\DebounceBundle\Model\DebounceTrait` to generate some fields in the entity:

```
namespace App\Entity;

use Kikwik\DebounceBundle\Model\DebounceTrait;

/**
 * @ORM\Entity(repositoryClass=UserRepository::class)
 * @ORM\Table(name="`user`")
 */
class User implements UserInterface
{
    use DebounceTrait;
}
```

Don't forget to make migrations and update your database:

```
$ php bin/console make:migration
$ php bin/console doctrine:migrations:migrate
```

Finally call `$user->setDebounceResponse($debounce->check($email));` to save debounce results in the entity

```
namespace App\Controller;

use Kikwik\DebounceBundle\Service\DebounceInterface;

class HomeController extends AbstractController
{
    /**
     * @Route("/debounce/{email}", name="app_debounce")
     */
    public function debounce($email, DebounceInterface $debounce, UserRepository $userRepository, EntityManagerInterface $entityManager)
    {
        $user = $userRepository->findOneByEmail($email);
        if(!$user)
        {
            return $this->createNotFoundException();
        }

        $user->setDebounceResponse($debounce->check($email));
        $entityManager->flush();

        if($user->getIsDebounceSafe())
        {
            // safe email!!!
            $debounceCode = $user->getDebounceResponseCode();
            // ...
        }

        return $this->redirectToRoute('app_home');
    }
}
```

Configure dev/test environment
------------------------------

[](#configure-devtest-environment)

Add dev/test fake\_debounce\_server route in `config/routes/kikwik_debounce.yaml`

```
when@dev:
    kikwik_debounce_bundle:
        resource: '@KikwikDebounceBundle/Resources/config/routes_dev_test.xml'
        prefix: '/'

when@test:
    kikwik_debounce_bundle:
        resource: '@KikwikDebounceBundle/Resources/config/routes_dev_test.xml'
        prefix: '/'
```

Add dev/test configuration in `config/packages/kikwik_debounce.yaml`

```
when@dev:
    kikwik_debounce:
        api_url: http://your-dev-machine.local/_fake_debounce_server
        api_key: xxxxx

when@test:
    kikwik_debounce:
        api_url: http://your-dev-machine.local/_fake_debounce_server
        api_key: xxxxx
```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance89

Actively maintained with recent releases

Popularity8

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 ~249 days

Recently: every ~433 days

Total

8

Last Release

55d ago

PHP version history (2 changes)v1.0.0PHP ^7.1.3

v1.0.7PHP &gt;=7.1.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/4bdd98919c8ee6645e854e72f8c6b76c503e12fd10078fb34ae1668cb2bd6d1a?d=identicon)[kikwik](/maintainers/kikwik)

---

Top Contributors

[![kikwik](https://avatars.githubusercontent.com/u/58590255?v=4)](https://github.com/kikwik "kikwik (14 commits)")

### Embed Badge

![Health badge](/badges/kikwik-debounce-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/kikwik-debounce-bundle/health.svg)](https://phpackages.com/packages/kikwik-debounce-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[kimai/kimai

Kimai - Time Tracking

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

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[acseo/typesense-bundle

This bundle provides integration with Typesense in Symfony

71112.0k1](/packages/acseo-typesense-bundle)

PHPackages © 2026

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