Новое в Symfony 4.3: URL Helper

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

    // ...
}