123 lines
6.1 KiB
PHP
123 lines
6.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Support;
|
|
|
|
/**
|
|
* Канонический справочник субъектов РФ (1..89) — PHP-зеркало
|
|
* resources/js/constants/regions.ts (конституционный порядок, ст. 65).
|
|
* Sentinel 0 «Вся РФ» не входит (= NULL subject_code / пустой regions).
|
|
*
|
|
* ВАЖНО: при правке regions.ts синхронно править этот файл (тест RegionTagResolverTest
|
|
* «mirrors regions.ts — exactly 89» ловит расхождение по count, но не по именам —
|
|
* сверять имена вручную при изменениях).
|
|
*/
|
|
final class RussianRegions
|
|
{
|
|
/** @var array<int, string> code(1..89) => официальное имя субъекта */
|
|
public const CODE_TO_NAME = [
|
|
// 24 республики
|
|
1 => 'Республика Адыгея',
|
|
2 => 'Республика Алтай',
|
|
3 => 'Республика Башкортостан',
|
|
4 => 'Республика Бурятия',
|
|
5 => 'Республика Дагестан',
|
|
6 => 'Донецкая Народная Республика',
|
|
7 => 'Республика Ингушетия',
|
|
8 => 'Кабардино-Балкарская Республика',
|
|
9 => 'Республика Калмыкия',
|
|
10 => 'Карачаево-Черкесская Республика',
|
|
11 => 'Республика Карелия',
|
|
12 => 'Республика Коми',
|
|
13 => 'Республика Крым',
|
|
14 => 'Луганская Народная Республика',
|
|
15 => 'Республика Марий Эл',
|
|
16 => 'Республика Мордовия',
|
|
17 => 'Республика Саха (Якутия)',
|
|
18 => 'Республика Северная Осетия — Алания',
|
|
19 => 'Республика Татарстан',
|
|
20 => 'Республика Тыва',
|
|
21 => 'Удмуртская Республика',
|
|
22 => 'Республика Хакасия',
|
|
23 => 'Чеченская Республика',
|
|
24 => 'Чувашская Республика',
|
|
// 9 краёв
|
|
25 => 'Алтайский край',
|
|
26 => 'Забайкальский край',
|
|
27 => 'Камчатский край',
|
|
28 => 'Краснодарский край',
|
|
29 => 'Красноярский край',
|
|
30 => 'Пермский край',
|
|
31 => 'Приморский край',
|
|
32 => 'Ставропольский край',
|
|
33 => 'Хабаровский край',
|
|
// 48 областей
|
|
34 => 'Амурская область',
|
|
35 => 'Архангельская область',
|
|
36 => 'Астраханская область',
|
|
37 => 'Белгородская область',
|
|
38 => 'Брянская область',
|
|
39 => 'Владимирская область',
|
|
40 => 'Волгоградская область',
|
|
41 => 'Вологодская область',
|
|
42 => 'Воронежская область',
|
|
43 => 'Запорожская область',
|
|
44 => 'Ивановская область',
|
|
45 => 'Иркутская область',
|
|
46 => 'Калининградская область',
|
|
47 => 'Калужская область',
|
|
48 => 'Кемеровская область',
|
|
49 => 'Кировская область',
|
|
50 => 'Костромская область',
|
|
51 => 'Курганская область',
|
|
52 => 'Курская область',
|
|
53 => 'Ленинградская область',
|
|
54 => 'Липецкая область',
|
|
55 => 'Магаданская область',
|
|
56 => 'Московская область',
|
|
57 => 'Мурманская область',
|
|
58 => 'Нижегородская область',
|
|
59 => 'Новгородская область',
|
|
60 => 'Новосибирская область',
|
|
61 => 'Омская область',
|
|
62 => 'Оренбургская область',
|
|
63 => 'Орловская область',
|
|
64 => 'Пензенская область',
|
|
65 => 'Псковская область',
|
|
66 => 'Ростовская область',
|
|
67 => 'Рязанская область',
|
|
68 => 'Самарская область',
|
|
69 => 'Саратовская область',
|
|
70 => 'Сахалинская область',
|
|
71 => 'Свердловская область',
|
|
72 => 'Смоленская область',
|
|
73 => 'Тамбовская область',
|
|
74 => 'Тверская область',
|
|
75 => 'Томская область',
|
|
76 => 'Тульская область',
|
|
77 => 'Тюменская область',
|
|
78 => 'Ульяновская область',
|
|
79 => 'Херсонская область',
|
|
80 => 'Челябинская область',
|
|
81 => 'Ярославская область',
|
|
// 3 города федерального значения
|
|
82 => 'Москва',
|
|
83 => 'Санкт-Петербург',
|
|
84 => 'Севастополь',
|
|
// 1 автономная область
|
|
85 => 'Еврейская автономная область',
|
|
// 4 автономных округа
|
|
86 => 'Ненецкий автономный округ',
|
|
87 => 'Ханты-Мансийский автономный округ — Югра',
|
|
88 => 'Чукотский автономный округ',
|
|
89 => 'Ямало-Ненецкий автономный округ',
|
|
];
|
|
|
|
/** @return array<string, int> name => code (обратный индекс) */
|
|
public static function nameToCode(): array
|
|
{
|
|
return array_flip(self::CODE_TO_NAME);
|
|
}
|
|
}
|