# LoggerMessagesExpressionTypeResolverExtension

> Infers the documented tuple shape for Yii logger and log-target message buffers.

[API reference](/docs/api/index.md) › [PHPStan](/docs/extensions/phpstan/reference/index.md) › [type](/docs/extensions/phpstan/reference/type/index.md) › LoggerMessagesExpressionTypeResolverExtension

| final class | `yii2\extensions\phpstan\type\LoggerMessagesExpressionTypeResolverExtension` |
| --- | --- |
| Implements | [`ExpressionTypeResolverExtension`](https://apiref.phpstan.org/2.3.x/PHPStan.Type.ExpressionTypeResolverExtension.html) |
| Source | [`src/type/LoggerMessagesExpressionTypeResolverExtension.php`](https://github.com/yii2-extensions/phpstan/blob/main/src/type/LoggerMessagesExpressionTypeResolverExtension.php#L39) |

Infers the documented tuple shape for Yii logger and log-target message buffers.

Yii exposes both buffers as native properties documented only as `array`. This expression resolver recognizes reads
of `Logger::$messages` and `Target::$messages` and constructs their precise PHPStan array types directly.

[`ExpressionTypeResolverExtension`](https://apiref.phpstan.org/2.3.x/PHPStan.Type.ExpressionTypeResolverExtension.html) for PHPStan expression type resolver contract.
[`Logger`](/docs/api/yii/log/logger/index.md) for the logger message structure.
[`Target`](/docs/api/yii/log/target/index.md) for filtered target message buffers.

## Methods

| Method | Description | Defined by |
| --- | --- | --- |
| [`__construct()`](#method-__construct) | Initializes Yii-version-aware logger message type resolution. | `LoggerMessagesExpressionTypeResolverExtension` |
| [`getType()`](#method-getType) | Resolves reads of Yii logger message-buffer properties to their precise array shapes. | `LoggerMessagesExpressionTypeResolverExtension` |

## Method details

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

```php
public function __construct(PHPStan\Reflection\ReflectionProvider $reflectionProvider)
```

Initializes Yii-version-aware logger message type resolution.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$reflectionProvider` | `PHPStan\Reflection\ReflectionProvider` | Reflection provider used to detect Yii 22.0 PSR message support. |

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

```php
public function getType(PhpParser\Node\Expr $expr, PHPStan\Analyser\Scope $scope): PHPStan\Type\Type|null
```

Resolves reads of Yii logger message-buffer properties to their precise array shapes.

**Parameters**

| Parameter | Type | Description |
| --- | --- | --- |
| `$expr` | `PhpParser\Node\Expr` | Expression being analyzed. |
| `$scope` | `PHPStan\Analyser\Scope` | Current PHPStan analysis scope. |

**Returns**

`PHPStan\Type\Type|null`: Inferred message-buffer type, or `null` for unrelated expressions.