IlyaPokamestov / DSReCaptchaBundle

Google ReCAPTCHA API ver.2 for Symfony2
MIT License
6 stars 6 forks source link

ReCAPTCHA ver.2 for Symfony2 applications

You can find full documentation about Google reCAPTCHA API v2 here.

Installation

You can install this package with Composer. Add next lines to your composer.json file:

{
    "require": {
        "dario_swain/ds-recaptcha-bundle":                 "dev-master"
    }
}

Add bundle to your AppKernel.php:

<?php
...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            ...
            new DS\ReCaptchaBundle\ReCaptchaBundle(),
        );

        ...
    }
}

Usage Example

Add to your config.yml:

re_captcha:
    public_key: #YOUR_PUBLIC_KEY#
    private_key: #YOUR_PRIVATE_KEY#
    locale: "%locale%"

After this you can add reCAPTCHA type to your custom form:

<?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_re_captcha', array('mapped' => false))
            ->add('send', 'submit');
    }
}

Next step, you need to add form_theme to your form view, it seems like that:

{% extends 'AcmeBundle::layout.html.twig' %}
{% form_theme form 'ReCaptchaBundle::form_div_layout.html.twig' %}
{% block content %}
    {{ form_start(form) }}
    {{ form_widget(form) }}
    {{ form_end(form) }}
{% endblock %}

Copyright

Copyright (c) 2015 Ilya Pokamestov dario_swain@yahoo.com.