Класс Countries
Класс Countries находится в пространстве имён
Symfony\Component\Intl и предоставляет статические
методы для получения информации о странах мира. Он
используется в секции i18n для перевода названий стран
на разные языки, получения буквенных кодов и проверки
существования страны по её коду. Данные класс берёт из
встроенных ресурсов библиотеки ICU.
Основные методы класса: getName для получения
названия страны, getNames для получения списка
всех стран, exists для проверки существования
страны и getAlpha3Code для получения
трёхбуквенного кода.
Синтаксис
<?php
use Symfony\Component\Intl\Countries;
Countries::getName(string $country, ?string $displayLocale = null): string;
Countries::getNames(?string $displayLocale = null): array;
Countries::exists(string $country): bool;
Countries::getAlpha3Code(string $country): string;
?>
Пример
Давайте получим название страны по её двухбуквенному
коду 'UA' на русском языке:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Intl\Countries;
class CountryController extends AbstractController
{
#[Route('/country', name: 'country_index')]
public function index(): Response
{
$name = Countries::getName('UA', 'ru');
return new Response($name);
}
}
?>
Результат выполнения кода:
"Украина"
Пример
Давайте получим список всех стран на английском языке:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Intl\Countries;
class CountryController extends AbstractController
{
#[Route('/countries', name: 'country_list')]
public function list(): Response
{
$res = Countries::getNames('en');
return new Response(implode(', ', array_slice($res, 0, 5)));
}
}
?>
Результат выполнения кода:
"Afghanistan, Albania, Algeria, American Samoa, Andorra"
Пример
Давайте проверим существование страны по её коду и получим трёхбуквенный код:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Intl\Countries;
class CountryController extends AbstractController
{
#[Route('/country/check', name: 'country_check')]
public function check(): Response
{
$exists = Countries::exists('UA') ? 'true' : 'false';
$code = Countries::getAlpha3Code('UA');
return new Response($exists . ' ' . $code);
}
}
?>
Результат выполнения кода:
"true UKR"
Смотрите также
-
метод
getName,
который возвращает название страны -
метод
getNames,
который возвращает список всех стран -
метод
exists,
который проверяет существование страны -
метод
getAlpha3Code,
который возвращает трёхбуквенный код страны