tutu-ru / lib-host-alias-resolver
Resolving host aliases
Installs: 36 354
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 17
Forks: 0
Open Issues: 0
Requires
- php: ^7.1
- tutu-ru/lib-config: ^2.0
Requires (Dev)
- phpunit/phpunit: ^7.4
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2025-03-09 03:26:10 UTC
README
Библиотека умеет три вещи:
- Получить полный 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
для того же алиаса.