Генерация абсолютных (и относительных) URL для заданного пути является обычной потребностью во многих приложениях. В шаблонах Twig это тривиально благодаря функциям absolute_url() и lative_path() (не путайте их с функциями path() и url(), которые генерируют URL с использованием имен маршрутов).
В Symfony 4.3 извлекли внутреннюю логику, используемую функциями Twig, в новый класс Symfony\Component\HttpFoundation\UrlHelper, который вы можете внедрить в качестве службы в любом месте вашего приложения. Этот класс предоставляет два открытых метода, называемых getAbsoluteUrl() и getRelativePath().
use Symfony\Component\HttpFoundation\UrlHelper;
class UserApiNormalizer
{
private $urlHelper;
public function __construct(UrlHelper $urlHelper)
{
$this->urlHelper = $urlHelper;
}
public function normalize($user, $format = null, array $context = [])
{
return [
'avatar' => $this->urlHelper->getAbsoluteUrl($user->avatar()->path()),
// ...
];
}
// ...
}