maxpowel / wixet-recaptcha-bundle
This Bundle provides support for google recaptcha into symfony forms
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^5.5.9|^7.0
- symfony/symfony: >=2.3
Requires (Dev)
- php: ^5.5.9|^7.0
- symfony/symfony: 3.2.*
This package is not auto-updated.
Last update: 2024-11-09 21:06:50 UTC
README
Add google captcha validation to symfony forms easily
Installation
Step 1: Use composer and enable Bundle
To install WixetRecaptchaBundle with Composer just type in your terminal:
composer require maxpowel/wixet-recaptcha-bundle
Now, Composer will automatically download all required files, and install them
for you. All that is left to do is to update your AppKernel.php
file, and
register the new bundle:
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Wixet\RecaptchaBundle\WixetRecaptchaBundle(), // ... );
Step2: Configure the bundle's
Add the following to your config file:
wixet_recaptcha: site_key: "YourSiteKey" secret: "YourSecret"
Get your recaptcha keys at https://www.google.com/recaptcha/admin
Basic Usage
In your controller or wherever is your form, add the WixetRecaptchaType like the following example:
$form = $this->createFormBuilder() ->add("name", TextType::class) ->add("recaptcha", WixetRecaptchaType::class) ->add("Submit", SubmitType::class) ->getForm() ;
Don't forget to include the type
use Wixet\RecaptchaBundle\Form\Type\WixetRecaptchaType;
Multiple and delayed rendering
Sometimes you need multiple recaptchas or delayed render (not render onload but render when you want). This is useful for example when you load ajax content with recaptchas.
The first step is include the recaptcha script manually (where you load all your scripts), you have to options:
{{ include_recaptcha() | raw }}
or
{{ include('WixetRecaptchaBundle::recaptcha_explicit.html.twig', { 'site_key': recaptcha_site_key() }) }}
I prefer the first way but the second allows more customization.
Now render the form as usual but with the option "explicit_render=true"
$form = $this->createFormBuilder() ->add("name", TextType::class) ->add("recaptcha", WixetRecaptchaType::class, array( 'explicit_render' => true )) ->add("Submit", SubmitType::class) ->getForm() ;
That's all!