Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikemix/mxrecaptcha
ZF2 form integration with reCaptcha v2.0
https://github.com/mikemix/mxrecaptcha
Last synced: 17 days ago
JSON representation
ZF2 form integration with reCaptcha v2.0
- Host: GitHub
- URL: https://github.com/mikemix/mxrecaptcha
- Owner: mikemix
- License: other
- Created: 2015-09-09T11:18:07.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-09-16T13:59:37.000Z (over 9 years ago)
- Last Synced: 2024-12-06T00:35:33.964Z (about 1 month ago)
- Language: PHP
- Size: 426 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mxreCaptcha
[![Build Status](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/badges/build.png?b=master)](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/build-status/master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/?branch=master) [![Code Coverage](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/mikemix/mxreCaptcha/?branch=master)
Easy ZF2 form integration with reCaptcha v2.0
## Installation
1. Install with Composer `php composer.phar require 'mikemix/mxrecaptcha:~1.0'` (we follow the rules of [Semantic Versioning](http://semver.org/))
2. Load the `mxreCaptcha` module in your `config/application.config.php` file
3. Copy the dist config file `cp vendor/mikemix/mxrecaptcha/config/mxrecaptcha.local.php.dist config/autoload/mxrecaptcha.local.php` and write your private and public key in it
4. You are ready to go!## Usage
First of all, add the reCaptcha element to your form. Example form class below:
```php
namespace App\Form;use Zend\Form\Form;
class AddForm extends Form
{
public function init()
{
$this->add([
'name' => 'recaptcha', // or any name of your choice
'type' => 'mxreCaptcha', // this is important, use our reCaptcha component
'options' => [
'label' => 'Prove you are human',
],
]);
// or
// This element behaves as any other element.
// Aside from that, you can pass custom grecaptcha.render parameters
// available at the docs
// https://developers.google.com/recaptcha/docs/display#render_param
// by setting widget_options key in the options, for example:
$this->add([
'name' => 'recaptcha',
'type' => 'mxreCaptcha',
'options' => [
'label' => 'Prove you are human',
'widget_options' => [
'theme' => 'dark',
],
],
]);
$this->add([
'name' => 'submit',
'type' => 'submit',
]);
}
}
```Example controller
```php
namespace App\Controller;use App\Form\AddForm;
use Zend\Mvc\Controller\AbstractActionController;class FormController extends AbstractActionController
{
public function indexAction()
{
$form = $this->getServiceLocator()->get('FormElementManager')
->get(AddForm::class);
if ($this->request->isPost()) {
$form->setData($this->request->getPost());
if ($form->isValid()) {
$this->flashMessenger()->addSuccessMessage('Success!');
return $this->redirect()->toRoute('home');
}
}
return [
'form' => $form
];
}
}
```Example view
```php
form->prepare();
?>= $this->form()->openTag($form) ?>
= $this->formCollection($form) ?>
= $this->form()->closeTag() ?>
```## Localization
By default, Polish translation for localized error messages is available out of the box.
To create custom translation for your application, simply copy the `pl.po` file from the `language` directory
and name it accordingly to match your translator `locale` setting (for example `fr_ca.po`). Finally translate
error messages and compile this file to `*.mo`. Put those two files inside the `language` directory.If you are willing to share your translation, please make a pull request.
## Unit tests
This modules comes up with unit tests. phpUnit is required to run the suite:
1. Clone this repository `git clone https://github.com/mikemix/mxreCaptcha.git`
2. Navigate to it `cd mxreCaptcha`
3. Download composer `php -r "readfile('https://getcomposer.org/installer');" | php`
4. Install dependencies `php composer.phar update`
5. Run suite `phpunit`