andanteproject / recaptcha-bundle
一个易于将 Google reCAPTCHA 集成到 Symfony 表单的 Symfony 扩展包
Requires
- php: ^7.4 || ^8.0
- google/recaptcha: ^1.2
- symfony/form: ^4.0 | ^5.0 | ^6.0
- symfony/framework-bundle: ^4.0 | ^5.0 | ^6.0
- symfony/validator: ^4.0 | ^5.0 | ^6.0
Requires (Dev)
- ext-json: *
- friendsofphp/php-cs-fixer: ^2.18
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^0.12.78
- phpstan/phpstan-phpunit: ^0.12.17
- phpstan/phpstan-symfony: ^0.12.20
- roave/security-advisories: dev-master
README
Google ReCAPTCHA 扩展包
Symfony 扩展包 - AndanteProject
一个将 Google reCAPTCHA 集成到 Symfony 表单 的 Symfony 扩展包。
需求
Symfony 4.x-6.x 和 PHP 7.4-8.x。
安装
通过 Composer
$ composer require andanteproject/recaptcha-bundle
功能
- 就像对其他
FormType
一样,将 Google reCAPTCHA 添加到您的 Symfony 表单; - 魔法般地工作 ✨。
安装
安装后,请确保您已将此扩展包注册到您的 symfony 扩展包列表中(config/bundles.php
)
return [ /// bundles... Andante\ReCaptchaBundle\AndanteReCaptchaBundle::class => ['all' => true], /// bundles... ];
如果您使用的是 Symfony Flex,则这应该会自动完成。否则,请自行注册。
配置
创建一个新的 andante_re_captcha.yaml
配置文件,并设置 Google ReCAPTCHA v2 secret
和 site_key
。
andante_re_captcha: secret: 'put_here_your_google_recaptcha_v2_secret' site_key: 'put_here_your_google_recaptcha_v2_site_key'
开发/测试环境配置
请注意:如果您不希望在开发/测试环境中被 reCAPTCHA 打扰,只需使用您可以在Google ReCAPTCHA 文档页面中找到的 secret key
和 site key
。此外,您可以在 test
环境中创建一个 test
配置来禁用 Andante\ReCaptchaBundle\Validator\Constraint\ReCaptchaValidator
。
andante_re_captcha: enable_validation: false #default: true
使用方法
之后,您可以在表单中添加与其他类型相同的 Andante\ReCaptchaBundle\Form\ReCaptchaType
表单类型。
<?php use Andante\ReCaptchaBundle\Form\ReCaptchaType; use Symfony\Component\Form\AbstractType; class RegistrationFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder // ... // All your form fields // ... ->add('recaptcha', ReCaptchaType::class); } }
完成! 🎉
您还有 2 个选项来更改 ReCAPTCHA 的 主题 或 大小。
$builder->add('recaptcha', ReCaptchaType::class, [ 'theme' => 'dark', // default is "light" 'size' => 'compact' // default is "normal" ]);
使用选项 'theme'
=> 'dark'
特别有用,如果您的应用程序有暗黑模式。
如何更改验证过程
验证由 Andante\ReCaptchaBundle\Validator\Constraint\ReCaptchaValidator
处理,这是 ReCaptchaType
选项中的默认约束。如果您想用您自己的替换它或出于任何原因禁用它,只需清空/替换表单类型 constraints
选项。
$builder->add('recaptcha', ReCaptchaType::class, [ 'constraints' => [ // Default value is Constraints\NotBlank + Constraint\Recaptcha ] ]);
由 AndanteProject 团队用爱💖打造。