Библиотека умеет три вещи:
- Получить полный uri адреса с опредением хоста по алиасу (resolve)
- Получить хост по алиасу или адрес какого-либо ресурса (getHostByAlias)
- Получить поддомен к текущему основному домену для сервисов (getWithEnvDomain)
Конфигурационные ноды:
infrastrucrute.env.domain
- основной домен для сервисовinfrastructure.host_alias_resolver
- хранилище алиасов хостов и адресов ресурсов, например:rus.desktop.mainpage
- главная страница десктопной русской версии сайтаexternal.partnerApi
- адрес партнерского апиinternal.ourApi
- адрес внутреннего ресурса
/** @var \TutuRu\Config\ConfigInterface $configContainer */
$resolver = new HostAliasResolver($configContainer);
print $resolver->resolve('mainpage.desktop.rus/query?arg=1#hash');
print $resolver->getHostByAlias('services.partnerApi');
Алиасы надо задавать в обратном порядке
resolve:
// rus.desktop.mainpage = main.host.com
print $resolver->resolve('mainpage.desktop.rus/query?arg=1#hash');
// выведет https://main.host.com/query?arg=1#hash
// https:// в ноде нет, resolve подставляет его сам
getHostByAlias:
// external.partnerApi = https://somerestapi.com
print $resolver->getHostByAlias('partnerApi.external');
// выведет https://somerestapi.com
Если ноды для алиаса нет - вернется getWithEnvDomain
для того же алиаса.