brussens / yii2-recaptcha
Google ReCaptcha v2.0 Yii 2.x.x extension
Installs: 20 595
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 4
Forks: 5
Open Issues: 3
Type:yii2-extension
Requires
- php: >=5.4.0
- google/recaptcha: ~1.2.1
- yiisoft/yii2: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-12-15 02:14:49 UTC
README
The main difference from the similar extensions is that this one doesn't require an application component with constant name, such as
\Yii::$app->recaptcha
or something.
Install
Either run
php composer.phar require --prefer-dist brussens/yii2-recaptcha "*"
or add
"brussens/yii2-recaptcha": "*"
to the require section of your composer.json
file.
Add to your bootstrap file:
$container->setSingleton(\ReCaptcha\ReCaptcha::class, function($container, $params, $config) { return new \ReCaptcha\ReCaptcha('your secret'); }); $container->set(\brussens\yii2\extensions\recaptcha\Widget::class, function($container, $params, $config) { return new \brussens\yii2\extensions\recaptcha\Widget('your site key', \Yii::$app->language, $config); });
Since Yii 2.0.11 you can also configure the container in the 'container' section of the app configuration:
'container' => [ 'definitions' => [ \brussens\yii2\extensions\recaptcha\Widget::class => function($container, $params, $config) { return new \brussens\yii2\extensions\recaptcha\Widget('your site key', \Yii::$app->language, $config); } ], 'singletons' => [ \ReCaptcha\ReCaptcha::class => function($container, $params, $config) { return new \ReCaptcha\ReCaptcha('your secret'); } ] ]
Add in your model validation rules
public function rules() { return [ ... ['verifyCode', \brussens\yii2\extensions\recaptcha\Validator::className()], ... ]; }
Add in your view
echo $form->field($model, 'verifyCode')->widget(\brussens\yii2\extensions\recaptcha\Widget::className());
If you use Pjax or multiple widgets on page
echo $form->field($model, 'verifyCode')->widget( \brussens\yii2\extensions\recaptcha\Widget::className(), [ 'options' => [ 'id' => 'insert-unique-widget-id' ] ]);