dario_swain / re-captcha-validator
Google reCaptcha 表单类型和验证器,适用于 Symfony 应用程序。
1.0.5
2016-03-10 19:06 UTC
Requires
- php: >=5.3.3
- dario_swain/re-captcha-library: 1.0.*
Requires (Dev)
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~2.0
- symfony/form: ~2.3|~3.0
- symfony/framework-bundle: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
This package is not auto-updated.
Last update: 2024-09-24 04:15:35 UTC
README
这是一个非常轻量级且简单的 reCAPTCHA 组件,适用于 Symfony 框架,它不是 Bundle,你可以根据喜好重新配置所有组件。
您可以在这里找到有关 Google reCAPTCHA API v2 的完整文档。
安装
您可以使用 Composer 安装此包。将以下行添加到您的 composer.json 文件中
{ "require": { "dario_swain/re-captcha-validator": "dev-master" }, "scripts": { "post-install-cmd": [ "DS\\Component\\ReCaptchaValidator\\Composer\\ScriptHandler::replaceViews" ], "post-update-cmd": [ "DS\\Component\\ReCaptchaValidator\\Composer\\ScriptHandler::replaceViews" ] }, }
要使用 php 版本 ~ 5.3,请使用版本 ~ 1.0
使用示例
添加公共和私有密钥,并将 reCAPTCHA 表单类型配置为服务,在应用程序包服务配置(service.yml)中提供以下配置
parameters: ds_recaptcha_public_key: #YOUR_PUBLIC_KEY# ds_recaptcha_private_key: #YOUR_PRIVATE_KEY# services: ds.form.type.recaptcha: class: DS\Component\ReCaptchaValidator\Form\ReCaptchaType arguments: ['@request_stack', %ds_recaptcha_public_key%, %ds_recaptcha_private_key%, %locale%] tags: - { name: form.type, alias: ds_recaptcha }
在此之后,您可以将 reCAPTCHA 类型添加到自定义表单中
<?php namespace AcmeBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; class ContactType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('message', 'textarea') /** In type add your form alias **/ ->add('captcha', 'ds_recaptcha', array('mapped' => false)) ->add('send', 'submit'); } public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( /** This option is require, because reCaptcha api.js add extra field "g-recaptcha-response" to form **/ 'allow_extra_fields' => true, )); } }
下一步,您需要将表单主题添加到表单视图中,看起来像这样
{% extends 'AcmeBundle::layout.html.twig' %} {% form_theme form 'DS/ReCaptcha/views/form_div_layout.html.twig' %} {% block content %} {{ form_start(form) }} {{ form_widget(form) }} {{ form_end(form) }} {% endblock %}
如果您需要自定义小部件,请随意更改 %kernel_root%/Resources/DS/ReCaptcha/views/form_div_layout.twig 中的模板
版权
版权所有(c)2015 Ilya Pokamestov dario_swain@yahoo.com。