Класс yii\captcha\Captcha
| Наследование | yii\captcha\Captcha » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/captcha/Captcha.php |
Captcha отображает изображение CAPTCHA и поле ввода для кода проверки, введённого пользователем.
Captcha используется совместно с yii\captcha\CaptchaAction для предоставления CAPTCHA — способа предотвращения спама на веб-сайтах.
Элемент изображения, отображаемый Captcha, будет показывать изображение CAPTCHA, сгенерированное действием, маршрут которого указан в $captchaAction. Это действие должно быть экземпляром yii\captcha\CaptchaAction.
Когда пользователь нажимает на изображение CAPTCHA, оно будет обновлено новым кодом CAPTCHA.
Можно использовать yii\captcha\CaptchaValidator для проверки соответствия введённого пользователем кода текущему коду проверки CAPTCHA.
Следующий пример показывает, как использовать этот виджет с атрибутом модели:
echo Captcha::widget([
'model' => $model,
'attribute' => 'captcha',
]);
Следующий пример будет использовать свойство name вместо:
echo Captcha::widget([
'name' => 'captcha',
]);
Также можно использовать этот виджет в ActiveForm с помощью метода widget(), например, так:
<?= $form->field($model, 'captcha')->widget(\yii\captcha\Captcha::classname(), [
// configure additional widget properties here
]) ?>
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attribute | string | Атрибут модели, к которому связан этот виджет. | yii\widgets\InputWidget |
| $autoIdPrefix | string | Префикс для автоматически сгенерированных идентификаторов виджета. | yii\base\Widget |
| $behaviors | yii\base\Behavior[] | Список поведений, прикреплённых к этому компоненту | yii\base\Component |
| $captchaAction | string|array | Маршрут действия, генерирующего изображения CAPTCHA. | yii\captcha\Captcha |
| $counter | integer | Счётчик, используемый для генерации $id виджетов. | yii\base\Widget |
| $field | yii\widgets\ActiveField | Активное поле ввода, которое инициирует отображение этого виджета. | yii\widgets\InputWidget |
| $id | string | Идентификатор виджета. | yii\base\Widget |
| $imageOptions | array | Атрибуты HTML для тега изображения CAPTCHA. | yii\captcha\Captcha |
| $model | yii\base\Model | Модель данных, с которой связан этот виджет. | yii\widgets\InputWidget |
| $name | string | Имя поля ввода. | yii\widgets\InputWidget |
| $options | array | Атрибуты HTML для тега поля ввода. | yii\captcha\Captcha |
| $stack | yii\base\Widget[] | Виджеты, которые в данный момент отображаются (не завершены). | yii\base\Widget |
| $template | string | Шаблон для расположения тега изображения CAPTCHA и тега поля ввода. | yii\captcha\Captcha |
| $value | string | Значение поля ввода. | yii\widgets\InputWidget |
| $view | yii\web\View | Объект представления, который можно использовать для отображения представлений или файлов представления. | yii\base\Widget |
| $viewPath | string | Директория, содержащая файлы представления для этого виджета. | yii\base\Widget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterRun() | Этот метод вызывается сразу после выполнения виджета. | yii\base\Widget |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | yii\base\Component |
| beforeRun() | Этот метод вызывается непосредственно перед выполнением виджета. | yii\base\Widget |
| begin() | Начинает выполнение виджета. | yii\base\Widget |
| behaviors() | Возвращает список поведений, по которым должен действовать этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| checkRequirements() | Проверяет, доступен ли графический движок для генерации изображений CAPTCHA. | yii\captcha\Captcha |
| className() | Возвращает полное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| end() | Завершает работу виджета. | yii\base\Widget |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), прикреплены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все прикреплённые к этому компоненту поведения. | yii\base\Component |
| getId() | Возвращает идентификатор виджета. | yii\base\Widget |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Widget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | yii\base\Widget |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует виджет. | yii\captcha\Captcha |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| registerClientScript() | Регистрирует необходимый JavaScript. | yii\captcha\Captcha |
| render() | Рендерит представление. | yii\base\Widget |
| renderFile() | Рендерит файл представления. | yii\base\Widget |
| run() | Рендерит виджет. | yii\captcha\Captcha |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| widget() | Создаёт экземпляр виджета и запускает его. | yii\base\Widget |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| getClientOptions() | Возвращает параметры для виджета CAPTCHA JS. | yii\captcha\Captcha |
| hasModel() | yii\widgets\InputWidget |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | Событие, генерируемое сразу после выполнения виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | Событие, генерируемое непосредственно перед выполнением виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | Событие, которое генерируется при инициализации виджета через init(). (доступно с версии 2.0.11) | yii\base\Widget |
Подробное описание свойств
$captchaAction общедоступное свойство
Маршрут действия, который генерирует изображения CAPTCHA. Действие, представленное этим маршрутом, должно быть действием yii\captcha\CaptchaAction. Обратитесь к yii\helpers\Url::toRoute() за допустимыми форматами.
public string|array $captchaAction = 'site/captcha'
$imageOptions общедоступное свойство
Атрибуты HTML, которые должны быть применены к тегу изображения CAPTCHA.
См. также yii\helpers\Html::renderTagAttributes() для получения подробностей о том, как рендерятся атрибуты.
public array $imageOptions = []
$options общедоступное свойство
Атрибуты HTML для тега ввода.
См. также yii\helpers\Html::renderTagAttributes() для получения подробностей о том, как рендерятся атрибуты.
public array $options = ['class' => 'form-control']
$template общедоступное свойство
Шаблон для размещения тега изображения CAPTCHA и тега текстового поля ввода. В этом шаблоне токен {image} будет заменён фактическим тегом изображения, а {input} — тегом текстового поля.
public string $template = '{image} {input}'
Подробное описание методов
checkRequirements() public static метод
Проверяет наличие графического расширения для генерации изображений CAPTCHA.
Этот метод проверит наличие расширений ImageMagick и GD.
| public static string checkRequirements ( ) | ||
|---|---|---|
| return | string |
Имя графического расширения, либо "imagick", либо "gd". |
| throws | yii\base\InvalidConfigException |
если ни ImageMagick, ни GD не установлены. |
getClientOptions() protected метод
Возвращает опции для виджета JS капчи.
| protected array getClientOptions ( ) | ||
|---|---|---|
| return | array |
Опции |
init() public метод
Инициализирует виджет.
| public void init ( ) |
|---|
registerClientScript() public метод
Регистрирует необходимый JavaScript.
| public void registerClientScript ( ) |
|---|
run() public метод
Отображает виджет.
| public void run ( ) |
|---|
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-captcha-captcha.html