Integrationen / Symfony
captchacore/captchacore-bundle für Symfony 6.4 LTS und 7.x — FormType, Validator-Constraint, Controller-Attribute und Twig-Funktion. Sie wählen, was zu Ihrem Projekt passt.
In drei Schritten
composer require — Symfony Flex registriert das Bundle und legt die Konfigurationsdatei an.
CAPTCHACORE_URL, Site-Key und Secret als Umgebungsvariablen.
FormType für Symfony-Formulare, Constraint für DTOs, Attribut für Controller, Twig-Funktion für alles andere.
composer require captchacore/captchacore-bundle
# .env
CAPTCHACORE_SITE_KEY=cc_pub_…
CAPTCHACORE_SECRET_KEY=cc_sec_…
// FormType
$builder->add('captcha', CaptchaCoreType::class, [
'form_type' => 'contact',
]);
// oder als Attribut am Controller
#[RequiresCaptcha(formType: 'register')]
public function register(Request $request): ResponseWas drin ist
Ein Feld im Form-Builder rendert Widget und Token; die Prüfung passiert in handleRequest().
Für DTOs und API-Payloads: #[CaptchaCoreToken] am Property, geprüft wie jede andere Constraint.
#[RequiresCaptcha] prüft den Token, bevor die Action läuft — ohne Code in der Methode.
captchacore_widget() für handgebaute Formulare außerhalb der Form-Komponente.
Optionaler Hinweis „geschützt durch CaptchaCore" mit Link zur Datenschutzerklärung.
Der Client ist ein Service — in Tests durch einen Fake ersetzen, fertig.
Proof-of-Work und Verhaltensanalyse statt Ampeln und Zebrastreifen — Menschen klicken einmal, Bots rechnen sich tot.
Verarbeitung auf eigenen Servern, keine Übertragung in Drittländer, kein Tracking über Seiten hinweg.
Das Widget lädt schnell, blockiert nie die Oberfläche und ist per Tastatur und Screenreader bedienbar.
Nein, aber es spart die manuelle Registrierung des Bundles und die Konfigurationsdatei.
Ja, über die Validator-Constraint an Ihren Input-DTOs.
PHP 8.2 oder neuer, passend zu Symfony 6.4 LTS und 7.x.
Alle Details, Optionen und Codebeispiele: Dokumentation →
Weitere Integrationen