Length
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° 2024-07-25
Length
ΠΠ°Π»ΠΈΠ΄ΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π»ΠΈΠ½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
??????????? ? | ???????? ??? ?????? |
????? | Length |
????????? | LengthValidator |
ΠΠ°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
Π§ΡΠΎΠ±Ρ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»Ρ firstName
ΠΊΠ»Π°ΡΡΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ "2"
ΠΈ 50
, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ
ΠΎΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// src/Entity/Participant.php
namespace App\Entity;
use Symfony\Component\Validator\Constraints as Assert;
class Participant
{
#[Assert\Length(
min: 2,
max: 50,
minMessage: 'Your first name must be at least {{ limit }} characters long',
maxMessage: 'Your first name cannot be longer than {{ limit }} characters',
)]
protected string $firstName;
}
Note
As with most of the other constraints, null
is
considered a valid value. This is to allow the use of optional values.
If the value is mandatory, a common solution is to combine this constraint
with NotNull.
ΠΠΏΡΠΈΠΈ
charset
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: UTF-8
ΠΠ°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ PHP-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ mb_check_encoding ΠΈ mb_strlen.
charsetMessage
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² {{ charset }}.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π°Π΄Π°Π½Π½ΡΠΉ charset.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
???????? | ???????? |
---|---|
{{ charset }} |
????????? ????? ???????? |
{{ value }} |
??????? (??????????) ???????? |
countUnit
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: Length::COUNT_CODEPOINTS
ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΡΡΡΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π»ΠΈΠ½Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ mb_strlen, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠΈΡΠ°Π΅Ρ ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠΎΡΠΊΠΈ Unicode.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ ΠΊΠ»Π°ΡΡΠ° Length:
COUNT_BYTES
: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ strlen Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΡΠ° Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ Π² Π±Π°ΠΉΡΠ°Ρ .COUNT_CODEPOINTS
: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ mb_strlen Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΡΠ° Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΎΡΠΊΠ°Ρ ΠΊΠΎΠ΄Π° Unicode. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π΄ΠΎ Symfony 6.2, Π° Ρ Symfony 6.3 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎΡΡΡΠ΅ (ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅) ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode ΡΡΠΈΡΠ°ΡΡΡΡ Π·Π° 1 ΡΠΈΠΌΠ²ΠΎΠ», Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ZWJ, ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΠΈΠ· ΡΠΌΠΎΠ΄ΠΆΠΈ, ΡΡΠΈΡΠ°ΡΡΡΡ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².COUNT_GRAPHEMES
: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ grapheme_strlen Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΡΠ° Π΄Π»ΠΈΠ½Ρ ΡΡΡΠΎΠΊΠΈ Π² Π³ΡΠ°ΡΠ΅ΠΌΠ°Ρ , Ρ.Π΅. Π΄Π°ΠΆΠ΅ ΡΠΌΠΎΠ΄ΠΆΠΈ ΠΈ ZWJ-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ· ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΌΠΎΠ΄ΠΆΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π·Π° 1 ΡΠΈΠΌΠ²ΠΎΠ».
exactly
ΡΠΈΠΏ: integer
ΠΡΠ° ΠΎΠΏΡΠΈΡ - ΡΡΠΎ ΡΠΎΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ. ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Note
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Length
Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅ΠΌΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
#[Assert\Length(20)]
ΠΈ #[Assert\Length(exactly: 20)]
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ.
exactMessage
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ²Π½ΠΎ {{ limit }} ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅, Π΅ΡΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½Ρ, Π° Π΄Π»ΠΈΠ½Π° ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
groups
type: array
| string
default: null
It defines the validation group or groups of this constraint. Read more about validation groups.
max
ΡΠΈΠΏ: integer
ΠΡΠ° ΠΎΠΏΡΠΈΡ - ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
This option is required when the min
option is not defined.
maxMessage
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅. ΠΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ {{ limit }} ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΡ max.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
min
ΡΠΈΠΏ: integer
ΠΡΠ° ΠΎΠΏΡΠΈΡ - ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
This option is required when the max
option is not defined.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ null
ΠΈ ΠΏΡΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΡΠΈΡΠ°ΡΡΡΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌΠΈ,
Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π΄Π»ΠΈΠ½Ρ. ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ
Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ null
.
minMessage
ΡΠΈΠΏ: string
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: ΠΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅. ΠΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ {{ limit }} ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅, Π΅ΡΠ»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΡ min.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ:
???????? | ???????? |
---|---|
{{ limit }} |
?????? ????????? ????? |
{{ value }} |
??????? (??????????) ???????? |
{{ value_length }} |
??????? ????? ???????? |
normalizer
type: a PHP callable default: null
This option allows to define the PHP callable applied to the given value before checking if it is valid.
For example, you may want to pass the 'trim'
string to apply the
trim PHP function in order to ignore leading and trailing
whitespace during validation.
ΠΠ°ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° 2024-07-25
payload
ΡΠΈΠΏ: mixed
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ: null
ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ Π΄ΠΎΠΌΠ΅Π½Ρ. Π‘ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡ, Π½ΠΎ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΈΡΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π² ΡΡΠΎΠ½Ρ-ΡΠ½Π΄Π΅ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ.