PHPackages                             almaviacx/captchetatbundle - 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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. almaviacx/captchetatbundle

ActiveIbexa-bundle[Validation &amp; Sanitization](/categories/validation)

almaviacx/captchetatbundle
==========================

Add CaptchEtat to forms

v2.1.0(1y ago)07.8k2MITPHPPHP ^7.4 || ^8.0

Since Jul 16Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/Novactive/AlmaviaCXCaptchEtatBundle)[ Packagist](https://packagist.org/packages/almaviacx/captchetatbundle)[ Docs](https://github.com/Novactive/AlmaviaCXCaptchEtatBundle)[ RSS](/packages/almaviacx-captchetatbundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (2)Versions (11)Used By (0)

AlmaviaCX CaptchEtat Bundle
===========================

[](#almaviacx-captchetat-bundle)

---

This repository is what we call a "subtree split": a read-only copy of one directory of the main repository. It is used by Composer to allow developers to depend on specific bundles.

If you want to report or contribute, you should instead open your issue on the main repository:

Documentation is available in this repository via `.md` files but also packaged here:

---

This bundle provide a form type to use CaptchEtat () on your website

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

[](#installation)

### Requirements

[](#requirements)

- Ibexa 4
- PHP 7.4 || 8.0

### Use Composer

[](#use-composer)

Add the lib to your composer.json, run `composer require almaviacx/captchetatbundle` to refresh dependencies.

### Register the bundle

[](#register-the-bundle)

Then inject the bundle in the `config\bundles.php` of your application.

```
    return [
        // ...
        AlmaviaCX\Bundle\CaptchEtatBundle\AlmaviaCXCaptchEtatBundle::class => [ 'all'=> true ],
    ];
```

### Add routes

[](#add-routes)

Make sure you add this route to your routing:

```
# config/routes.yaml

captchetat_routes:
    resource: '@AlmaviaCXCaptchEtatBundle/Resources/config/routes.yaml'
```

### Accessibility

[](#accessibility)

For accessibility, you might want to add the following script to your JS

```
import CaptchaEtat from '../public/bundles/almaviacxcaptchetat/js/captchetat-widget'
CaptchaEtat.init()
```

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

[](#configuration)

Configuration can be done throught the following environment variables

```
CAPTCHETAT_API_URL="https://sandbox-api.piste.gouv.fr"
CAPTCHETAT_OAUTH_URL="https://sandbox-oauth.piste.gouv.fr"
CAPTCHETAT_OAUTH_CLIENT_ID=~
CAPTCHETAT_OAUTH_CLIENT_SECRET=~
CAPTCHETAT_TIMEOUT="2.5"

```

Depending on if you use "sandbox" (default) or "production" environment, you might want to change the urls to :

```
CAPTCHETAT_API_URL="https://api.piste.gouv.fr"
CAPTCHETAT_OAUTH_URL="https://oauth.piste.gouv.fr"

```

Add captcha to your form
------------------------

[](#add-captcha-to-your-form)

```
$builder->add(
    'captcha', CaptchEtatType::class,
    [
        'label' => 'customform.show.captcha',
    ]
);

```

Formbuilder forms
-----------------

[](#formbuilder-forms)

You can autommaticaly add the captcha to formbuilder forms by activating the following service decorator :

```
AlmaviaCX\Bundle\CaptchEtat\FormBuilder\FieldType\Field\Mapper\ButtonFieldMapperDecorator:
    decorates: Ibexa\FormBuilder\FieldType\Field\Mapper\ButtonFieldMapper
    arguments:
        $buttonFieldMapper: '@.inner'
```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance67

Regular maintenance activity

Popularity24

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 71.4% 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 ~29 days

Recently: every ~43 days

Total

7

Last Release

404d ago

Major Versions

1.1.2 → v2.0.02025-02-14

### Community

Maintainers

![](https://www.gravatar.com/avatar/7bf781acfc713c38985bfb2e7bee5fd2decefdeed1df550643af57aa8e315db7?d=identicon)[Almaviacx](/maintainers/Almaviacx)

---

Top Contributors

[![erdnaxelaweb](https://avatars.githubusercontent.com/u/2130120?v=4)](https://github.com/erdnaxelaweb "erdnaxelaweb (5 commits)")[![Adil-SL](https://avatars.githubusercontent.com/u/109508585?v=4)](https://github.com/Adil-SL "Adil-SL (1 commits)")[![mohamed-hamdani](https://avatars.githubusercontent.com/u/138455778?v=4)](https://github.com/mohamed-hamdani "mohamed-hamdani (1 commits)")

---

Tags

bundleibexa

### Embed Badge

![Health badge](/badges/almaviacx-captchetatbundle/health.svg)

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

###  Alternatives

[rollerworks/password-strength-bundle

Password-strength validator bundle for Symfony

1433.7M6](/packages/rollerworks-password-strength-bundle)[isometriks/spam-bundle

Provides spam protection for Symfony forms

46200.6k1](/packages/isometriks-spam-bundle)[sfmok/request-input-bundle

Converts request data into DTO inputs objects with validation.

3512.8k](/packages/sfmok-request-input-bundle)[j-ben87/parsley-bundle

Convert Symfony constraints into data-attributes for client-side validation with Parsley.

1432.7k](/packages/j-ben87-parsley-bundle)

PHPackages © 2026

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