carlos-mg89/symfony-captcha-bundle
最新稳定版本:4.2.21
Composer 安装命令:
composer require carlos-mg89/symfony-captcha-bundle
包简介
Symfony Captcha Bundle -- BotDetect PHP CAPTCHA generator integration for the Symfony framework.
关键字:
README 文档
README
BotDetect PHP Captcha generator integration for the Symfony 5 framework (possibly on Symfony 4.4 too)
BotDetect Symfony CAPTCHA integration on captcha.com
- Symfony Captcha Integration Quickstart
- Symfony Application
- Symfony Captcha Api Basics Example
- Symfony Captcha Form Model Validation Example
- Symfony Captcha FOSUserBundle Example
Other BotDetect PHP Captcha integrations
- Plain PHP Captcha Integration
- WordPress Captcha Plugin
- CakePHP Captcha Integration
- CodeIgniter Captcha Integration
- Laravel Captcha Integration
Questions?
If you encounter bugs, implementation issues, a usage scenario you would like to discuss, or you have any questions, please contact BotDetect CAPTCHA Support.
How to install with Composer
Simply run composer require carlos-mg89/symfony-captcha-bundle
Usage example in a Symfony 5.x project
- Install dependency with Composer as explained above
- Add the following in your
config/routes.yaml:captcha_routing: resource: "@CaptchaBundle/Resources/config/routing.yml" - Create this file
config/packages/captcha.phpwith the following content (or similar):<?php if (!class_exists('CaptchaConfiguration')) { return; } // You could have more than one object like ExampleCaptcha. For example, one for the login page, another for the register page, etc. return [ 'ExampleCaptcha' => [ 'UserInputID' => 'captchaCode', 'CodeLength' => CaptchaRandomization::GetRandomCodeLength(5, 6), 'ImageWidth' => 250, 'ImageHeight' => 50, ], ]; - Edit your
config/services.yamlso it autowires the controllers used in the library:# We need to autowire the Container (or manually wire it) services: Captcha\Bundle\CaptchaBundle\Controller\: resource: '../vendor/carlos-mg89/symfony-captcha-bundle/Controller' autowire: true - Edit your
FormTypeor yourFormBuilderInterfacewith this bit that adds the captcha along with the constraing to validate the form:$builder->add('captchaCode', CaptchaType::class, [ 'captchaConfig' => 'ExampleCaptcha', 'constraints' => [ new ValidCaptcha([ 'message' => 'Invalid captcha, please try again', ]), ] ]); - Now edit your Twig template with the new
captchaCode(CaptchaType):{{ form_label(form.captchaCode) }} {{ form_widget(form.captchaCode}) }} - Finally, add the Form validation:
$contactForm = $this->createForm(ContactType::class); $contactForm->handleRequest($request); if ($contactForm->isSubmitted() && $contactForm->isValid()) { // Do whatever you want, be it register a user, send an email, etc $this->addFlash('success', $translator->trans('Contact.Form.SuccessMsg')); } elseif ($contactForm->isSubmitted() && !$contactForm->isValid()) { throw new Exception('Invalid form'); }
You have the original documentation here: https://captcha.com/doc/php/howto/symfony-captcha-bundle-integration.html#howto_display_captcha_config but it's not fully up to date nor complete.
统计信息
- 总下载量: 30.64k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2020-12-09