# StaticInstanceInterface

> StaticInstanceInterface is the interface for providing static instances to classes, which can be used to obtain class meta information that can not be expressed in static methods.

[API reference](/docs/api/index.md) › [yii](/docs/api/yii/index.md) › [base](/docs/api/yii/base/index.md) › StaticInstanceInterface

| interface | `yii\base\StaticInstanceInterface` |
| --- | --- |
| Since | 2.0.13 |
| Source | [`framework/base/StaticInstanceInterface.php`](https://github.com/yiisoft/yii2/blob/22.0/framework/base/StaticInstanceInterface.php#L23) |

Implemented by 2 types:

- [`Model`](/docs/api/yii/base/model/index.md)
- [`yii\db\ActiveRecordInterface`](/docs/api/yii/db/activerecordinterface/index.md)

StaticInstanceInterface is the interface for providing static instances to classes,
which can be used to obtain class meta information that can not be expressed in static methods.

For example: adjustments made by DI or behaviors reveal only at object level, but might be needed
at class (static) level as well.

To implement the [`instance()`](/docs/api/yii/base/staticinstanceinterface/index.md#method-instance) method you may use [`StaticInstanceTrait`](/docs/api/yii/base/staticinstancetrait/index.md).

See also: [`StaticInstanceTrait`](/docs/api/yii/base/staticinstancetrait/index.md).

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| [`instance()`](#method-instance) static abstract | Returns static class instance, which can be used to obtain meta information. | `StaticInstanceInterface` |

## Method details

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

```php
abstract public static function instance(bool $refresh = false): static
```

Returns static class instance, which can be used to obtain meta information.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$refresh` | `bool` | Whether to re-create static instance even, if it is already cached. |

**Returns**

`static`: Class instance.