name: Request
class_comment: '# * Request represents an HTTP request.

  # *

  # * The methods dealing with URL accept / return a raw path (% encoded):

  # *   * getBasePath

  # *   * getBaseUrl

  # *   * getPathInfo

  # *   * getRequestUri

  # *   * getUri

  # *   * getUriForPath

  # *

  # * @author Fabien Potencier <fabien@symfony.com>'
dependencies:
- name: ConflictingHeadersException
  type: class
  source: Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException
- name: JsonException
  type: class
  source: Symfony\Component\HttpFoundation\Exception\JsonException
- name: SessionNotFoundException
  type: class
  source: Symfony\Component\HttpFoundation\Exception\SessionNotFoundException
- name: SuspiciousOperationException
  type: class
  source: Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException
- name: SessionInterface
  type: class
  source: Symfony\Component\HttpFoundation\Session\SessionInterface
properties:
- name: content
  visibility: protected
  comment: "# * Request represents an HTTP request.\n# *\n# * The methods dealing\
    \ with URL accept / return a raw path (% encoded):\n# *   * getBasePath\n# * \
    \  * getBaseUrl\n# *   * getPathInfo\n# *   * getRequestUri\n# *   * getUri\n\
    # *   * getUriForPath\n# *\n# * @author Fabien Potencier <fabien@symfony.com>\n\
    # */\n# class Request\n# {\n# public const HEADER_FORWARDED = 0b000001; // When\
    \ using RFC 7239\n# public const HEADER_X_FORWARDED_FOR = 0b000010;\n# public\
    \ const HEADER_X_FORWARDED_HOST = 0b000100;\n# public const HEADER_X_FORWARDED_PROTO\
    \ = 0b001000;\n# public const HEADER_X_FORWARDED_PORT = 0b010000;\n# public const\
    \ HEADER_X_FORWARDED_PREFIX = 0b100000;\n# \n# public const HEADER_X_FORWARDED_AWS_ELB\
    \ = 0b0011010; // AWS ELB doesn't send X-Forwarded-Host\n# public const HEADER_X_FORWARDED_TRAEFIK\
    \ = 0b0111110; // All \"X-Forwarded-*\" headers sent by Traefik reverse proxy\n\
    # \n# public const METHOD_HEAD = 'HEAD';\n# public const METHOD_GET = 'GET';\n\
    # public const METHOD_POST = 'POST';\n# public const METHOD_PUT = 'PUT';\n# public\
    \ const METHOD_PATCH = 'PATCH';\n# public const METHOD_DELETE = 'DELETE';\n# public\
    \ const METHOD_PURGE = 'PURGE';\n# public const METHOD_OPTIONS = 'OPTIONS';\n\
    # public const METHOD_TRACE = 'TRACE';\n# public const METHOD_CONNECT = 'CONNECT';\n\
    # \n# /**\n# * @var string[]\n# */\n# protected static array $trustedProxies =\
    \ [];\n# \n# /**\n# * @var string[]\n# */\n# protected static array $trustedHostPatterns\
    \ = [];\n# \n# /**\n# * @var string[]\n# */\n# protected static array $trustedHosts\
    \ = [];\n# \n# protected static bool $httpMethodParameterOverride = false;\n#\
    \ \n# /**\n# * Custom parameters.\n# */\n# public ParameterBag $attributes;\n\
    # \n# /**\n# * Request body parameters ($_POST).\n# *\n# * @see getPayload() for\
    \ portability between content types\n# */\n# public InputBag $request;\n# \n#\
    \ /**\n# * Query string parameters ($_GET).\n# */\n# public InputBag $query;\n\
    # \n# /**\n# * Server and execution environment parameters ($_SERVER).\n# */\n\
    # public ServerBag $server;\n# \n# /**\n# * Uploaded files ($_FILES).\n# */\n\
    # public FileBag $files;\n# \n# /**\n# * Cookies ($_COOKIE).\n# */\n# public InputBag\
    \ $cookies;\n# \n# /**\n# * Headers (taken from the $_SERVER).\n# */\n# public\
    \ HeaderBag $headers;\n# \n# /**\n# * @var string|resource|false|null"
- name: isIisRewrite
  visibility: private
  comment: "# * @var string[]|null\n# */\n# protected ?array $languages = null;\n\
    # \n# /**\n# * @var string[]|null\n# */\n# protected ?array $charsets = null;\n\
    # \n# /**\n# * @var string[]|null\n# */\n# protected ?array $encodings = null;\n\
    # \n# /**\n# * @var string[]|null\n# */\n# protected ?array $acceptableContentTypes\
    \ = null;\n# \n# protected ?string $pathInfo = null;\n# protected ?string $requestUri\
    \ = null;\n# protected ?string $baseUrl = null;\n# protected ?string $basePath\
    \ = null;\n# protected ?string $method = null;\n# protected ?string $format =\
    \ null;\n# protected SessionInterface|\\Closure|null $session = null;\n# protected\
    \ ?string $locale = null;\n# protected string $defaultLocale = 'en';\n# \n# /**\n\
    # * @var array<string, string[]>|null\n# */\n# protected static ?array $formats\
    \ = null;\n# \n# protected static ?\\Closure $requestFactory = null;\n# \n# private\
    \ ?string $preferredFormat = null;\n# \n# private bool $isHostValid = true;\n\
    # private bool $isForwardedValid = true;\n# private bool $isSafeContentPreferred;\n\
    # \n# private array $trustedValuesCache = [];\n# \n# private static int $trustedHeaderSet\
    \ = -1;\n# \n# private const FORWARDED_PARAMS = [\n# self::HEADER_X_FORWARDED_FOR\
    \ => 'for',\n# self::HEADER_X_FORWARDED_HOST => 'host',\n# self::HEADER_X_FORWARDED_PROTO\
    \ => 'proto',\n# self::HEADER_X_FORWARDED_PORT => 'host',\n# ];\n# \n# /**\n#\
    \ * Names for headers that can be trusted when\n# * using trusted proxies.\n#\
    \ *\n# * The FORWARDED header is the standard as of rfc7239.\n# *\n# * The other\
    \ headers are non-standard, but widely used\n# * by popular reverse proxies (like\
    \ Apache mod_proxy or Amazon EC2).\n# */\n# private const TRUSTED_HEADERS = [\n\
    # self::HEADER_FORWARDED => 'FORWARDED',\n# self::HEADER_X_FORWARDED_FOR => 'X_FORWARDED_FOR',\n\
    # self::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',\n# self::HEADER_X_FORWARDED_PROTO\
    \ => 'X_FORWARDED_PROTO',\n# self::HEADER_X_FORWARDED_PORT => 'X_FORWARDED_PORT',\n\
    # self::HEADER_X_FORWARDED_PREFIX => 'X_FORWARDED_PREFIX',\n# ];\n# \n# /** @var\
    \ bool"
methods:
- name: __construct
  visibility: public
  parameters:
  - name: query
    default: '[]'
  - name: request
    default: '[]'
  - name: attributes
    default: '[]'
  - name: cookies
    default: '[]'
  - name: files
    default: '[]'
  - name: server
    default: '[]'
  - name: content
    default: 'null'
  comment: "# * Request represents an HTTP request.\n# *\n# * The methods dealing\
    \ with URL accept / return a raw path (% encoded):\n# *   * getBasePath\n# * \
    \  * getBaseUrl\n# *   * getPathInfo\n# *   * getRequestUri\n# *   * getUri\n\
    # *   * getUriForPath\n# *\n# * @author Fabien Potencier <fabien@symfony.com>\n\
    # */\n# class Request\n# {\n# public const HEADER_FORWARDED = 0b000001; // When\
    \ using RFC 7239\n# public const HEADER_X_FORWARDED_FOR = 0b000010;\n# public\
    \ const HEADER_X_FORWARDED_HOST = 0b000100;\n# public const HEADER_X_FORWARDED_PROTO\
    \ = 0b001000;\n# public const HEADER_X_FORWARDED_PORT = 0b010000;\n# public const\
    \ HEADER_X_FORWARDED_PREFIX = 0b100000;\n# \n# public const HEADER_X_FORWARDED_AWS_ELB\
    \ = 0b0011010; // AWS ELB doesn't send X-Forwarded-Host\n# public const HEADER_X_FORWARDED_TRAEFIK\
    \ = 0b0111110; // All \"X-Forwarded-*\" headers sent by Traefik reverse proxy\n\
    # \n# public const METHOD_HEAD = 'HEAD';\n# public const METHOD_GET = 'GET';\n\
    # public const METHOD_POST = 'POST';\n# public const METHOD_PUT = 'PUT';\n# public\
    \ const METHOD_PATCH = 'PATCH';\n# public const METHOD_DELETE = 'DELETE';\n# public\
    \ const METHOD_PURGE = 'PURGE';\n# public const METHOD_OPTIONS = 'OPTIONS';\n\
    # public const METHOD_TRACE = 'TRACE';\n# public const METHOD_CONNECT = 'CONNECT';\n\
    # \n# /**\n# * @var string[]\n# */\n# protected static array $trustedProxies =\
    \ [];\n# \n# /**\n# * @var string[]\n# */\n# protected static array $trustedHostPatterns\
    \ = [];\n# \n# /**\n# * @var string[]\n# */\n# protected static array $trustedHosts\
    \ = [];\n# \n# protected static bool $httpMethodParameterOverride = false;\n#\
    \ \n# /**\n# * Custom parameters.\n# */\n# public ParameterBag $attributes;\n\
    # \n# /**\n# * Request body parameters ($_POST).\n# *\n# * @see getPayload() for\
    \ portability between content types\n# */\n# public InputBag $request;\n# \n#\
    \ /**\n# * Query string parameters ($_GET).\n# */\n# public InputBag $query;\n\
    # \n# /**\n# * Server and execution environment parameters ($_SERVER).\n# */\n\
    # public ServerBag $server;\n# \n# /**\n# * Uploaded files ($_FILES).\n# */\n\
    # public FileBag $files;\n# \n# /**\n# * Cookies ($_COOKIE).\n# */\n# public InputBag\
    \ $cookies;\n# \n# /**\n# * Headers (taken from the $_SERVER).\n# */\n# public\
    \ HeaderBag $headers;\n# \n# /**\n# * @var string|resource|false|null\n# */\n\
    # protected $content;\n# \n# /**\n# * @var string[]|null\n# */\n# protected ?array\
    \ $languages = null;\n# \n# /**\n# * @var string[]|null\n# */\n# protected ?array\
    \ $charsets = null;\n# \n# /**\n# * @var string[]|null\n# */\n# protected ?array\
    \ $encodings = null;\n# \n# /**\n# * @var string[]|null\n# */\n# protected ?array\
    \ $acceptableContentTypes = null;\n# \n# protected ?string $pathInfo = null;\n\
    # protected ?string $requestUri = null;\n# protected ?string $baseUrl = null;\n\
    # protected ?string $basePath = null;\n# protected ?string $method = null;\n#\
    \ protected ?string $format = null;\n# protected SessionInterface|\\Closure|null\
    \ $session = null;\n# protected ?string $locale = null;\n# protected string $defaultLocale\
    \ = 'en';\n# \n# /**\n# * @var array<string, string[]>|null\n# */\n# protected\
    \ static ?array $formats = null;\n# \n# protected static ?\\Closure $requestFactory\
    \ = null;\n# \n# private ?string $preferredFormat = null;\n# \n# private bool\
    \ $isHostValid = true;\n# private bool $isForwardedValid = true;\n# private bool\
    \ $isSafeContentPreferred;\n# \n# private array $trustedValuesCache = [];\n# \n\
    # private static int $trustedHeaderSet = -1;\n# \n# private const FORWARDED_PARAMS\
    \ = [\n# self::HEADER_X_FORWARDED_FOR => 'for',\n# self::HEADER_X_FORWARDED_HOST\
    \ => 'host',\n# self::HEADER_X_FORWARDED_PROTO => 'proto',\n# self::HEADER_X_FORWARDED_PORT\
    \ => 'host',\n# ];\n# \n# /**\n# * Names for headers that can be trusted when\n\
    # * using trusted proxies.\n# *\n# * The FORWARDED header is the standard as of\
    \ rfc7239.\n# *\n# * The other headers are non-standard, but widely used\n# *\
    \ by popular reverse proxies (like Apache mod_proxy or Amazon EC2).\n# */\n# private\
    \ const TRUSTED_HEADERS = [\n# self::HEADER_FORWARDED => 'FORWARDED',\n# self::HEADER_X_FORWARDED_FOR\
    \ => 'X_FORWARDED_FOR',\n# self::HEADER_X_FORWARDED_HOST => 'X_FORWARDED_HOST',\n\
    # self::HEADER_X_FORWARDED_PROTO => 'X_FORWARDED_PROTO',\n# self::HEADER_X_FORWARDED_PORT\
    \ => 'X_FORWARDED_PORT',\n# self::HEADER_X_FORWARDED_PREFIX => 'X_FORWARDED_PREFIX',\n\
    # ];\n# \n# /** @var bool */\n# private $isIisRewrite = false;\n# \n# /**\n# *\
    \ @param array                $query      The GET parameters\n# * @param array\
    \                $request    The POST parameters\n# * @param array           \
    \     $attributes The request attributes (parameters parsed from the PATH_INFO,\
    \ ...)\n# * @param array                $cookies    The COOKIE parameters\n# *\
    \ @param array                $files      The FILES parameters\n# * @param array\
    \                $server     The SERVER parameters\n# * @param string|resource|null\
    \ $content    The raw body data"
- name: initialize
  visibility: public
  parameters:
  - name: query
    default: '[]'
  - name: request
    default: '[]'
  - name: attributes
    default: '[]'
  - name: cookies
    default: '[]'
  - name: files
    default: '[]'
  - name: server
    default: '[]'
  - name: content
    default: 'null'
  comment: '# * Sets the parameters for this request.

    # *

    # * This method also re-initializes all properties.

    # *

    # * @param array                $query      The GET parameters

    # * @param array                $request    The POST parameters

    # * @param array                $attributes The request attributes (parameters
    parsed from the PATH_INFO, ...)

    # * @param array                $cookies    The COOKIE parameters

    # * @param array                $files      The FILES parameters

    # * @param array                $server     The SERVER parameters

    # * @param string|resource|null $content    The raw body data'
- name: createFromGlobals
  visibility: public
  parameters: []
  comment: '# * Creates a new request with values from PHP''s super globals.'
- name: create
  visibility: public
  parameters:
  - name: uri
  - name: method
    default: '''GET'''
  - name: parameters
    default: '[]'
  - name: cookies
    default: '[]'
  - name: files
    default: '[]'
  - name: server
    default: '[]'
  - name: content
    default: 'null'
  comment: '# * Creates a Request based on a given URI and configuration.

    # *

    # * The information contained in the URI always take precedence

    # * over the other information (server and parameters).

    # *

    # * @param string               $uri        The URI

    # * @param string               $method     The HTTP method

    # * @param array                $parameters The query (GET) or request (POST)
    parameters

    # * @param array                $cookies    The request cookies ($_COOKIE)

    # * @param array                $files      The request files ($_FILES)

    # * @param array                $server     The server parameters ($_SERVER)

    # * @param string|resource|null $content    The raw body data'
- name: setFactory
  visibility: public
  parameters:
  - name: callable
  comment: '# * Sets a callable able to create a Request instance.

    # *

    # * This is mainly useful when you need to override the Request class

    # * to keep BC with an existing system. It should not be used for any

    # * other purpose.'
- name: duplicate
  visibility: public
  parameters:
  - name: query
    default: 'null'
  - name: request
    default: 'null'
  - name: attributes
    default: 'null'
  - name: cookies
    default: 'null'
  - name: files
    default: 'null'
  - name: server
    default: 'null'
  comment: '# * Clones a request and overrides some of its parameters.

    # *

    # * @param array|null $query      The GET parameters

    # * @param array|null $request    The POST parameters

    # * @param array|null $attributes The request attributes (parameters parsed from
    the PATH_INFO, ...)

    # * @param array|null $cookies    The COOKIE parameters

    # * @param array|null $files      The FILES parameters

    # * @param array|null $server     The SERVER parameters'
- name: __clone
  visibility: public
  parameters: []
  comment: '# * Clones the current request.

    # *

    # * Note that the session is not cloned as duplicated requests

    # * are most of the time sub-requests of the main one.'
- name: __toString
  visibility: public
  parameters: []
  comment: null
- name: overrideGlobals
  visibility: public
  parameters: []
  comment: '# * Overrides the PHP global variables according to this request instance.

    # *

    # * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.

    # * $_FILES is never overridden, see rfc1867'
- name: setTrustedProxies
  visibility: public
  parameters:
  - name: proxies
  - name: trustedHeaderSet
  comment: '# * Sets a list of trusted proxies.

    # *

    # * You should only list the reverse proxies that you manage directly.

    # *

    # * @param array $proxies          A list of trusted proxies, the string ''REMOTE_ADDR''
    will be replaced with $_SERVER[''REMOTE_ADDR'']

    # * @param int   $trustedHeaderSet A bit field of Request::HEADER_*, to set which
    headers to trust from your proxies'
- name: getTrustedProxies
  visibility: public
  parameters: []
  comment: '# * Gets the list of trusted proxies.

    # *

    # * @return string[]'
- name: getTrustedHeaderSet
  visibility: public
  parameters: []
  comment: '# * Gets the set of trusted headers from trusted proxies.

    # *

    # * @return int A bit field of Request::HEADER_* that defines which headers are
    trusted from your proxies'
- name: setTrustedHosts
  visibility: public
  parameters:
  - name: hostPatterns
  comment: '# * Sets a list of trusted host patterns.

    # *

    # * You should only list the hosts you manage using regexs.

    # *

    # * @param array $hostPatterns A list of trusted host patterns'
- name: getTrustedHosts
  visibility: public
  parameters: []
  comment: '# * Gets the list of trusted host patterns.

    # *

    # * @return string[]'
- name: normalizeQueryString
  visibility: public
  parameters:
  - name: qs
  comment: '# * Normalizes a query string.

    # *

    # * It builds a normalized query string, where keys/value pairs are alphabetized,

    # * have consistent escaping and unneeded delimiters are removed.'
- name: enableHttpMethodParameterOverride
  visibility: public
  parameters: []
  comment: '# * Enables support for the _method request parameter to determine the
    intended HTTP method.

    # *

    # * Be warned that enabling this feature might lead to CSRF issues in your code.

    # * Check that you are using CSRF tokens when required.

    # * If the HTTP method parameter override is enabled, an html-form with method
    "POST" can be altered

    # * and used to send a "PUT" or "DELETE" request via the _method request parameter.

    # * If these methods are not protected against CSRF, this presents a possible
    vulnerability.

    # *

    # * The HTTP method can only be overridden when the real HTTP method is POST.'
- name: getHttpMethodParameterOverride
  visibility: public
  parameters: []
  comment: '# * Checks whether support for the _method request parameter is enabled.'
- name: get
  visibility: public
  parameters:
  - name: key
  - name: default
    default: 'null'
  comment: '# * Gets a "parameter" value from any bag.

    # *

    # * This method is mainly useful for libraries that want to provide some flexibility.
    If you don''t need the

    # * flexibility in controllers, it is better to explicitly get request parameters
    from the appropriate

    # * public property instead (attributes, query, request).

    # *

    # * Order of precedence: PATH (routing placeholders or custom attributes), GET,
    POST

    # *

    # * @internal use explicit input sources instead'
- name: getSession
  visibility: public
  parameters: []
  comment: '# * Gets the Session.

    # *

    # * @throws SessionNotFoundException When session is not set properly'
- name: hasPreviousSession
  visibility: public
  parameters: []
  comment: '# * Whether the request contains a Session which was started in one of
    the

    # * previous requests.'
- name: hasSession
  visibility: public
  parameters:
  - name: skipIfUninitialized
    default: 'false'
  comment: '# * Whether the request contains a Session object.

    # *

    # * This method does not give any information about the state of the session object,

    # * like whether the session is started or not. It is just a way to check if this
    Request

    # * is associated with a Session instance.

    # *

    # * @param bool $skipIfUninitialized When true, ignores factories injected by
    `setSessionFactory`'
- name: setSession
  visibility: public
  parameters:
  - name: session
  comment: null
- name: setSessionFactory
  visibility: public
  parameters:
  - name: factory
  comment: '# * @internal

    # *

    # * @param callable(): SessionInterface $factory'
- name: getClientIps
  visibility: public
  parameters: []
  comment: '# * Returns the client IP addresses.

    # *

    # * In the returned array the most trusted IP address is first, and the

    # * least trusted one last. The "real" client IP address is the last one,

    # * but this is also the least trusted one. Trusted proxies are stripped.

    # *

    # * Use this method carefully; you should use getClientIp() instead.

    # *

    # * @see getClientIp()'
- name: getClientIp
  visibility: public
  parameters: []
  comment: '# * Returns the client IP address.

    # *

    # * This method can read the client IP address from the "X-Forwarded-For" header

    # * when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-For"

    # * header value is a comma+space separated list of IP addresses, the left-most

    # * being the original client, and each successive proxy that passed the request

    # * adding the IP address where it received the request from.

    # *

    # * If your reverse proxy uses a different header name than "X-Forwarded-For",

    # * ("Client-Ip" for instance), configure it via the $trustedHeaderSet

    # * argument of the Request::setTrustedProxies() method instead.

    # *

    # * @see getClientIps()

    # * @see https://wikipedia.org/wiki/X-Forwarded-For'
- name: getScriptName
  visibility: public
  parameters: []
  comment: '# * Returns current script name.'
- name: getPathInfo
  visibility: public
  parameters: []
  comment: '# * Returns the path being requested relative to the executed script.

    # *

    # * The path info always starts with a /.

    # *

    # * Suppose this request is instantiated from /mysite on localhost:

    # *

    # *  * http://localhost/mysite              returns an empty string

    # *  * http://localhost/mysite/about        returns ''/about''

    # *  * http://localhost/mysite/enco%20ded   returns ''/enco%20ded''

    # *  * http://localhost/mysite/about?var=1  returns ''/about''

    # *

    # * @return string The raw path (i.e. not urldecoded)'
- name: getBasePath
  visibility: public
  parameters: []
  comment: '# * Returns the root path from which this request is executed.

    # *

    # * Suppose that an index.php file instantiates this request object:

    # *

    # *  * http://localhost/index.php         returns an empty string

    # *  * http://localhost/index.php/page    returns an empty string

    # *  * http://localhost/web/index.php     returns ''/web''

    # *  * http://localhost/we%20b/index.php  returns ''/we%20b''

    # *

    # * @return string The raw path (i.e. not urldecoded)'
- name: getBaseUrl
  visibility: public
  parameters: []
  comment: '# * Returns the root URL from which this request is executed.

    # *

    # * The base URL never ends with a /.

    # *

    # * This is similar to getBasePath(), except that it also includes the

    # * script filename (e.g. index.php) if one exists.

    # *

    # * @return string The raw URL (i.e. not urldecoded)'
- name: getBaseUrlReal
  visibility: private
  parameters: []
  comment: '# * Returns the real base URL received by the webserver from which this
    request is executed.

    # * The URL does not include trusted reverse proxy prefix.

    # *

    # * @return string The raw URL (i.e. not urldecoded)'
- name: getScheme
  visibility: public
  parameters: []
  comment: '# * Gets the request''s scheme.'
- name: getPort
  visibility: public
  parameters: []
  comment: '# * Returns the port on which the request is made.

    # *

    # * This method can read the client port from the "X-Forwarded-Port" header

    # * when trusted proxies were set via "setTrustedProxies()".

    # *

    # * The "X-Forwarded-Port" header must contain the client port.

    # *

    # * @return int|string|null Can be a string if fetched from the server bag'
- name: getUser
  visibility: public
  parameters: []
  comment: '# * Returns the user.'
- name: getPassword
  visibility: public
  parameters: []
  comment: '# * Returns the password.'
- name: getUserInfo
  visibility: public
  parameters: []
  comment: '# * Gets the user info.

    # *

    # * @return string|null A user name if any and, optionally, scheme-specific information
    about how to gain authorization to access the server'
- name: getHttpHost
  visibility: public
  parameters: []
  comment: '# * Returns the HTTP host being requested.

    # *

    # * The port name will be appended to the host if it''s non-standard.'
- name: getRequestUri
  visibility: public
  parameters: []
  comment: '# * Returns the requested URI (path and query string).

    # *

    # * @return string The raw URI (i.e. not URI decoded)'
- name: getSchemeAndHttpHost
  visibility: public
  parameters: []
  comment: '# * Gets the scheme and HTTP host.

    # *

    # * If the URL was called with basic authentication, the user

    # * and the password are not added to the generated string.'
- name: getUri
  visibility: public
  parameters: []
  comment: '# * Generates a normalized URI (URL) for the Request.

    # *

    # * @see getQueryString()'
- name: getUriForPath
  visibility: public
  parameters:
  - name: path
  comment: '# * Generates a normalized URI for the given path.

    # *

    # * @param string $path A path to use instead of the current one'
- name: getRelativeUriForPath
  visibility: public
  parameters:
  - name: path
  comment: '# * Returns the path as relative reference from the current Request path.

    # *

    # * Only the URIs path component (no schema, host etc.) is relevant and must be
    given.

    # * Both paths must be absolute and not contain relative parts.

    # * Relative URLs from one resource to another are useful when generating self-contained
    downloadable document archives.

    # * Furthermore, they can be used to reduce the link size in documents.

    # *

    # * Example target paths, given a base path of "/a/b/c/d":

    # * - "/a/b/c/d"     -> ""

    # * - "/a/b/c/"      -> "./"

    # * - "/a/b/"        -> "../"

    # * - "/a/b/c/other" -> "other"

    # * - "/a/x/y"       -> "../../x/y"'
- name: getQueryString
  visibility: public
  parameters: []
  comment: '# * Generates the normalized query string for the Request.

    # *

    # * It builds a normalized query string, where keys/value pairs are alphabetized

    # * and have consistent escaping.'
- name: isSecure
  visibility: public
  parameters: []
  comment: '# * Checks whether the request is secure or not.

    # *

    # * This method can read the client protocol from the "X-Forwarded-Proto" header

    # * when trusted proxies were set via "setTrustedProxies()".

    # *

    # * The "X-Forwarded-Proto" header must contain the protocol: "https" or "http".'
- name: getHost
  visibility: public
  parameters: []
  comment: '# * Returns the host name.

    # *

    # * This method can read the client host name from the "X-Forwarded-Host" header

    # * when trusted proxies were set via "setTrustedProxies()".

    # *

    # * The "X-Forwarded-Host" header must contain the client host name.

    # *

    # * @throws SuspiciousOperationException when the host name is invalid or not
    trusted'
- name: setMethod
  visibility: public
  parameters:
  - name: method
  comment: '# * Sets the request method.'
- name: getMethod
  visibility: public
  parameters: []
  comment: '# * Gets the request "intended" method.

    # *

    # * If the X-HTTP-Method-Override header is set, and if the method is a POST,

    # * then it is used to determine the "real" intended HTTP method.

    # *

    # * The _method request parameter can also be used to determine the HTTP method,

    # * but only if enableHttpMethodParameterOverride() has been called.

    # *

    # * The method is always an uppercased string.

    # *

    # * @see getRealMethod()'
- name: getRealMethod
  visibility: public
  parameters: []
  comment: '# * Gets the "real" request method.

    # *

    # * @see getMethod()'
- name: getMimeType
  visibility: public
  parameters:
  - name: format
  comment: '# * Gets the mime type associated with the format.'
- name: getMimeTypes
  visibility: public
  parameters:
  - name: format
  comment: '# * Gets the mime types associated with the format.

    # *

    # * @return string[]'
- name: getFormat
  visibility: public
  parameters:
  - name: mimeType
  comment: '# * Gets the format associated with the mime type.'
- name: setFormat
  visibility: public
  parameters:
  - name: format
  - name: mimeTypes
  comment: '# * Associates a format with mime types.

    # *

    # * @param string|string[] $mimeTypes The associated mime types (the preferred
    one must be the first as it will be used as the content type)'
- name: getRequestFormat
  visibility: public
  parameters:
  - name: default
    default: '''html'''
  comment: '# * Gets the request format.

    # *

    # * Here is the process to determine the format:

    # *

    # *  * format defined by the user (with setRequestFormat())

    # *  * _format request attribute

    # *  * $default

    # *

    # * @see getPreferredFormat'
- name: setRequestFormat
  visibility: public
  parameters:
  - name: format
  comment: '# * Sets the request format.'
- name: getContentTypeFormat
  visibility: public
  parameters: []
  comment: '# * Gets the usual name of the format associated with the request''s media
    type (provided in the Content-Type header).

    # *

    # * @see Request::$formats'
- name: setDefaultLocale
  visibility: public
  parameters:
  - name: locale
  comment: '# * Sets the default locale.'
- name: getDefaultLocale
  visibility: public
  parameters: []
  comment: '# * Get the default locale.'
- name: setLocale
  visibility: public
  parameters:
  - name: locale
  comment: '# * Sets the locale.'
- name: getLocale
  visibility: public
  parameters: []
  comment: '# * Get the locale.'
- name: isMethod
  visibility: public
  parameters:
  - name: method
  comment: '# * Checks if the request method is of specified type.

    # *

    # * @param string $method Uppercase request method (GET, POST etc)'
- name: isMethodSafe
  visibility: public
  parameters: []
  comment: '# * Checks whether or not the method is safe.

    # *

    # * @see https://tools.ietf.org/html/rfc7231#section-4.2.1'
- name: isMethodIdempotent
  visibility: public
  parameters: []
  comment: '# * Checks whether or not the method is idempotent.'
- name: isMethodCacheable
  visibility: public
  parameters: []
  comment: '# * Checks whether the method is cacheable or not.

    # *

    # * @see https://tools.ietf.org/html/rfc7231#section-4.2.3'
- name: getProtocolVersion
  visibility: public
  parameters: []
  comment: '# * Returns the protocol version.

    # *

    # * If the application is behind a proxy, the protocol version used in the

    # * requests between the client and the proxy and between the proxy and the

    # * server might be different. This returns the former (from the "Via" header)

    # * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns

    # * the latter (from the "SERVER_PROTOCOL" server parameter).'
- name: getContent
  visibility: public
  parameters:
  - name: asResource
    default: 'false'
  comment: '# * Returns the request body content.

    # *

    # * @param bool $asResource If true, a resource will be returned

    # *

    # * @return string|resource

    # *

    # * @psalm-return ($asResource is true ? resource : string)'
- name: getPayload
  visibility: public
  parameters: []
  comment: '# * Gets the decoded form or json request body.

    # *

    # * @throws JsonException When the body cannot be decoded to an array'
- name: toArray
  visibility: public
  parameters: []
  comment: '# * Gets the request body decoded as array, typically from a JSON payload.

    # *

    # * @see getPayload() for portability between content types

    # *

    # * @throws JsonException When the body cannot be decoded to an array'
- name: getETags
  visibility: public
  parameters: []
  comment: '# * Gets the Etags.'
- name: isNoCache
  visibility: public
  parameters: []
  comment: null
- name: getPreferredFormat
  visibility: public
  parameters:
  - name: default
    default: '''html'''
  comment: '# * Gets the preferred format for the response by inspecting, in the following
    order:

    # *   * the request format set using setRequestFormat;

    # *   * the values of the Accept HTTP header.

    # *

    # * Note that if you use this method, you should send the "Vary: Accept" header

    # * in the response to prevent any issues with intermediary HTTP caches.'
- name: getPreferredLanguage
  visibility: public
  parameters:
  - name: locales
    default: 'null'
  comment: '# * Returns the preferred language.

    # *

    # * @param string[] $locales An array of ordered available locales'
- name: getLanguages
  visibility: public
  parameters: []
  comment: '# * Gets a list of languages acceptable by the client browser ordered
    in the user browser preferences.

    # *

    # * @return string[]'
- name: formatLocale
  visibility: private
  parameters:
  - name: locale
  comment: '# * Strips the locale to only keep the canonicalized language value.

    # *

    # * Depending on the $locale value, this method can return values like :

    # * - language_Script_REGION: "fr_Latn_FR", "zh_Hans_TW"

    # * - language_Script: "fr_Latn", "zh_Hans"

    # * - language_REGION: "fr_FR", "zh_TW"

    # * - language: "fr", "zh"

    # *

    # * Invalid locale values are returned as is.

    # *

    # * @see https://wikipedia.org/wiki/IETF_language_tag

    # * @see https://datatracker.ietf.org/doc/html/rfc5646'
- name: getLanguageCombinations
  visibility: private
  parameters:
  - name: locale
  comment: '# * Returns an array of all possible combinations of the language components.

    # *

    # * For instance, if the locale is "fr_Latn_FR", this method will return:

    # * - "fr_Latn_FR"

    # * - "fr_Latn"

    # * - "fr_FR"

    # * - "fr"

    # *

    # * @return string[]'
- name: getLanguageComponents
  visibility: private
  parameters:
  - name: locale
  comment: '# * Returns an array with the language components of the locale.

    # *

    # * For example:

    # * - If the locale is "fr_Latn_FR", this method will return "fr", "Latn", "FR"

    # * - If the locale is "fr_FR", this method will return "fr", null, "FR"

    # * - If the locale is "zh_Hans", this method will return "zh", "Hans", null

    # *

    # * @see https://wikipedia.org/wiki/IETF_language_tag

    # * @see https://datatracker.ietf.org/doc/html/rfc5646

    # *

    # * @return array{string, string|null, string|null}'
- name: getCharsets
  visibility: public
  parameters: []
  comment: '# * Gets a list of charsets acceptable by the client browser in preferable
    order.

    # *

    # * @return string[]'
- name: getEncodings
  visibility: public
  parameters: []
  comment: '# * Gets a list of encodings acceptable by the client browser in preferable
    order.

    # *

    # * @return string[]'
- name: getAcceptableContentTypes
  visibility: public
  parameters: []
  comment: '# * Gets a list of content types acceptable by the client browser in preferable
    order.

    # *

    # * @return string[]'
- name: isXmlHttpRequest
  visibility: public
  parameters: []
  comment: '# * Returns true if the request is an XMLHttpRequest.

    # *

    # * It works if your JavaScript library sets an X-Requested-With HTTP header.

    # * It is known to work with common JavaScript frameworks:

    # *

    # * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript'
- name: preferSafeContent
  visibility: public
  parameters: []
  comment: '# * Checks whether the client browser prefers safe content or not according
    to RFC8674.

    # *

    # * @see https://tools.ietf.org/html/rfc8674'
- name: prepareRequestUri
  visibility: protected
  parameters: []
  comment: null
- name: prepareBaseUrl
  visibility: protected
  parameters: []
  comment: '# * Prepares the base URL.'
- name: prepareBasePath
  visibility: protected
  parameters: []
  comment: '# * Prepares the base path.'
- name: preparePathInfo
  visibility: protected
  parameters: []
  comment: '# * Prepares the path info.'
- name: initializeFormats
  visibility: protected
  parameters: []
  comment: '# * Initializes HTTP request formats.'
- name: setPhpDefaultLocale
  visibility: private
  parameters:
  - name: locale
  comment: null
- name: getUrlencodedPrefix
  visibility: private
  parameters:
  - name: string
  - name: prefix
  comment: '# * Returns the prefix as encoded in the string when the string starts
    with

    # * the given prefix, null otherwise.'
- name: createRequestFromFactory
  visibility: private
  parameters:
  - name: query
    default: '[]'
  - name: request
    default: '[]'
  - name: attributes
    default: '[]'
  - name: cookies
    default: '[]'
  - name: files
    default: '[]'
  - name: server
    default: '[]'
  - name: content
    default: 'null'
  comment: null
- name: isFromTrustedProxy
  visibility: public
  parameters: []
  comment: '# * Indicates whether this request originated from a trusted proxy.

    # *

    # * This can be useful to determine whether or not to trust the

    # * contents of a proxy-specific header.'
- name: getTrustedValues
  visibility: private
  parameters:
  - name: type
  - name: ip
    default: 'null'
  comment: '# * This method is rather heavy because it splits and merges headers,
    and it''s called by many other methods such as

    # * getPort(), isSecure(), getHost(), getClientIps(), getBaseUrl() etc. Thus,
    we try to cache the results for

    # * best performance.'
- name: normalizeAndFilterClientIps
  visibility: private
  parameters:
  - name: clientIps
  - name: ip
  comment: null
- name: isIisRewrite
  visibility: private
  parameters: []
  comment: '# * Is this IIS with UrlRewriteModule?

    # *

    # * This method consumes, caches and removed the IIS_WasUrlRewritten env var,

    # * so we don''t inherit it to sub-requests.'
traits:
- Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException
- Symfony\Component\HttpFoundation\Exception\JsonException
- Symfony\Component\HttpFoundation\Exception\SessionNotFoundException
- Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException
- Symfony\Component\HttpFoundation\Session\SessionInterface
interfaces: []