Метод getHost
Метод getHost класса Request возвращает
имя хоста (домен), к которому был отправлен
HTTP-запрос. Значение берётся из заголовка
Host или из заголовков
X-Forwarded-Host, X-Forwarded-For,
если запрос прошёл через доверенный прокси.
Метод не принимает параметров и возвращает
строку.
Синтаксис
public function getHost(): string
Пример
Давайте получим хост из текущего запроса в контроллере:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$host = $request->getHost();
return new Response($host);
}
}
?>
Результат выполнения кода для адреса
https://example.com/article:
example.com
Пример
Давайте соберём полный адрес сайта из хоста и схемы запроса:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$scheme = $request->getScheme();
$host = $request->getHost();
$url = $scheme . '://' . $host;
return new Response($url);
}
}
?>
Результат выполнения кода для адреса
https://example.com/article:
https://example.com
Пример
Давайте выведем хост в шаблоне Twig, получив
его через объект Request:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
return $this->render('article/index.html.twig', [
'host' => $request->getHost(),
]);
}
}
?>
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
getScheme,
который возвращает схему запроса -
метод
getSchemeAndHttpHost,
который возвращает схему и хост -
метод
getUri,
который возвращает полный URI запроса