# packeta/1.6.1/deps/nette/schema/src/Schema/Message.php

Packeta, version 1.6.1. 57 lines.

- Page: https://pluginprobe.com/plugins/packeta/1.6.1/code/deps/nette/schema/src/Schema/Message.php
- Raw: https://pluginprobe.com/plugins/packeta/1.6.1/raw/deps/nette/schema/src/Schema/Message.php
- Modified: 2023-08-30T08:36:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/packeta/1.6.1/code/deps/nette/schema/src/Schema/Message.php#L10-L20`.

```php
<?php

/**
 * This file is part of the Nette Framework (https://nette.org)
 * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
 */
declare (strict_types=1);
namespace Packetery\Nette\Schema;

use Packetery\Nette;
final class Message
{
    use \Packetery\Nette\SmartObject;
    /** variables: {value: mixed, expected: string} */
    public const TYPE_MISMATCH = 'schema.typeMismatch';
    /** variables: {value: mixed, expected: string} */
    public const VALUE_OUT_OF_RANGE = 'schema.valueOutOfRange';
    /** variables: {value: mixed, length: int, expected: string} */
    public const LENGTH_OUT_OF_RANGE = 'schema.lengthOutOfRange';
    /** variables: {value: string, pattern: string} */
    public const PATTERN_MISMATCH = 'schema.patternMismatch';
    /** variables: {value: mixed, assertion: string} */
    public const FAILED_ASSERTION = 'schema.failedAssertion';
    /** no variables */
    public const MISSING_ITEM = 'schema.missingItem';
    /** variables: {hint: string} */
    public const UNEXPECTED_ITEM = 'schema.unexpectedItem';
    /** no variables */
    public const DEPRECATED = 'schema.deprecated';
    /** @var string */
    public $message;
    /** @var string */
    public $code;
    /** @var string[] */
    public $path;
    /** @var string[] */
    public $variables;
    public function __construct(string $message, string $code, array $path, array $variables = [])
    {
        $this->message = $message;
        $this->code = $code;
        $this->path = $path;
        $this->variables = $variables;
    }
    public function toString() : string
    {
        $vars = $this->variables;
        $vars['label'] = empty($vars['isKey']) ? 'item' : 'key of item';
        $vars['path'] = $this->path ? "'" . \implode(" › ", $this->path) . "'" : null;
        $vars['value'] = Helpers::formatValue($vars['value'] ?? null);
        return \preg_replace_callback('~( ?)%(\\w+)%~', function ($m) use($vars) {
            [, $space, $key] = $m;
            return $vars[$key] === null ? '' : $space . $vars[$key];
        }, $this->message);
    }
}

```
