РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
184 of 1361 menu

Метод getScheme

Метод getScheme класса Request возвращает схему текущего запроса. Схема - это часть URL, которая определяет протокол передачи данных: http или https. Метод не принимает параметров и всегда возвращает строку в нижнем регистре. Если запрос был выполнен по HTTPS, метод вернёт https, в противном случае - http.

Синтаксис

public function getScheme(): 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 RequestController extends AbstractController { #[Route('/request/scheme', name: 'request_scheme')] public function scheme(Request $request): Response { $res = $request->getScheme(); return new Response($res); } } ?>

Результат выполнения кода для адреса /request/scheme:

http

Пример

Давайте проверим, пришёл ли запрос по защищённому протоколу:

<?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', name: 'request_secure')] public function secure(Request $request): Response { $scheme = $request->getScheme(); if ($scheme === 'https') { $res = 'secure connection'; } else { $res = 'insecure connection'; } return new Response($res); } } ?>

Результат выполнения кода для адреса /request/secure без HTTPS:

"insecure connection"

Результат выполнения кода для адреса /request/secure с HTTPS:

"secure connection"

Пример

Давайте соберём полный URL запроса, используя схему, хост и путь:

<?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/full-url', name: 'request_full_url')] public function fullUrl(Request $request): Response { $scheme = $request->getScheme(); $host = $request->getHost(); $path = $request->getPathInfo(); $res = $scheme . '://' . $host . $path; return new Response($res); } } ?>

Результат выполнения кода для адреса /request/full-url на локальном сервере:

"http://localhost/request/full-url"

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • метод getSchemeAndHttpHost,
    который возвращает схему и хост запроса
  • метод isSecure,
    который проверяет защищённость соединения
  • метод getHost,
    который возвращает хост запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить