# ClientValidatorScriptInterface

> Defines the contract for client-side validator script generation.

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [validators](/docs/api/yii/validators/index.md) › [client](/docs/api/yii/validators/client/index.md) › ClientValidatorScriptInterface

| interface | `yii\validators\client\ClientValidatorScriptInterface` |
| --- | --- |
| Since | 22.0 |
| Source | [`framework/validators/client/ClientValidatorScriptInterface.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/validators/client/ClientValidatorScriptInterface.php#L28) |

Defines the contract for client-side validator script generation.

Classes implementing this interface provide methods for retrieving client-side validation options and registering the
corresponding JavaScript code for a given validator, model, and attribute.

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| [`getClientOptions()`](#method-getClientOptions) abstract | Returns client-side validation options for the specified validator, model, and attribute. | `ClientValidatorScriptInterface` |
| [`register()`](#method-register) abstract | Registers the client-side validation script for the specified validator, model, and attribute in the view. | `ClientValidatorScriptInterface` |

## Method details

### getClientOptions() <span id="method-getClientOptions"></span>

```php
abstract public function getClientOptions(yii\validators\client\T $validator, yii\base\Model $model, string $attribute): array<string, mixed>
```

Returns client-side validation options for the specified validator, model, and attribute.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$validator` | `yii\validators\client\T` | The validator instance. |
| `$model` | [`yii\base\Model`](/docs/api/yii/base/model/index.md) | The data model being validated. |
| `$attribute` | `string` | The attribute name being validated. |

**Returns**

`array<string, mixed>`: Client-side validation options.

### register() <span id="method-register"></span>

```php
abstract public function register(yii\validators\client\T $validator, yii\base\Model $model, string $attribute, yii\web\View $view): string|null
```

Registers the client-side validation script for the specified validator, model, and attribute in the view.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$validator` | `yii\validators\client\T` | The validator instance. |
| `$model` | [`yii\base\Model`](/docs/api/yii/base/model/index.md) | The data model being validated. |
| `$attribute` | `string` | The attribute name being validated. |
| `$view` | [`yii\web\View`](/docs/api/yii/web/view/index.md) | The view instance where the script will be registered. |

**Returns**

`string|null`: The client-side validation script, or `null` if not supported.