Метод getPort
Метод getPort класса Request возвращает целое число - номер порта, на который пришёл текущий запрос. Метод не принимает параметров. Если запрос был сделан на стандартный порт (80 для HTTP или 443 для HTTPS), метод всё равно вернёт фактическое значение порта, которое использовалось в соединении. Это может быть полезно при генерации абсолютных URL или при проверке условий, связанных с портом.
Синтаксис
public function getPort(): int
Пример
Давайте получим порт текущего запроса в контроллере и выведем его:
<?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 RequestController extends AbstractController
{
#[Route('/request/port', name: 'request_port')]
public function port(Request $request): Response
{
$port = $request->getPort();
return new Response((string) $port);
}
}
?>
Результат выполнения кода для стандартного HTTP-запроса:
"80"
Пример
Давайте сравним порт с HTTPS-портом и вернём соответствующее сообщение:
<?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 RequestController extends AbstractController
{
#[Route('/request/secure-port', name: 'request_secure_port')]
public function securePort(Request $request): Response
{
if ($request->getPort() === 443) {
return new Response('secure connection');
}
return new Response('insecure connection');
}
}
?>
Результат выполнения кода для запроса на порт 443:
"secure connection"
Смотрите также
-
метод
getScheme,
который возвращает схему запроса (http или https) -
метод
getHost,
который возвращает имя хоста запроса -
метод
getSchemeAndHttpHost,
который возвращает схему и хост вместе -
метод
isSecure,
который проверяет, использует ли запрос HTTPS