Генерация абсолютных (и относительных) 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()),
// ...
];
}
// ...
}