/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/HTTP/PhpEnvironment/Response.php
211 строк
4 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\Framework\HTTP\PhpEnvironment; use Magento\Framework\App\Response\HttpInterface; use Magento\Framework\ObjectManager\ResetAfterRequestInterface; /** * Base HTTP response object */ class Response extends \Laminas\Http\PhpEnvironment\Response implements HttpInterface, ResetAfterRequestInterface { /** * Flag; is this response a redirect? * * @var boolean */ protected bool $isRedirect = false; /** * @inheritdoc */ public function getHeader($name) { $header = false; $headers = $this->getHeaders(); if ($headers->has($name)) { $header = $headers->get($name); if (is_iterable($header)) { $header = $header[0]; } } return $header; } /** * Send the response, including all headers, rendering exceptions if so requested. * * @return void */ public function sendResponse() { $this->send(); } /** * @inheritdoc */ public function appendBody($value) { $body = $this->getContent(); $this->setContent($body . $value); return $this; } /** * @inheritdoc */ public function setBody($value) { $this->setContent($value); return $this; } /** * Clear body * * @return $this */ public function clearBody() { $this->setContent(''); return $this; } /** * @inheritdoc */ public function setHeader($name, $value, $replace = false) { $value = (string)$value; if ($replace) { $this->clearHeader($name); } $this->getHeaders()->addHeaderLine($name, $value); return $this; } /** * @inheritdoc */ public function clearHeader($name) { $headers = $this->getHeaders(); if ($headers->has($name)) { $headerValues = $headers->get($name); if (!is_iterable($headerValues)) { $headerValues = [$headerValues]; } foreach ($headerValues as $headerValue) { $headers->removeHeader($headerValue); } } return $this; } /** * Remove all headers * * @return $this */ public function clearHeaders() { $headers = $this->getHeaders(); $headers->clearHeaders(); return $this; } /** * @inheritdoc */ public function setRedirect($url, $code = 302) { $this->setHeader('Location', $url, true) ->setHttpResponseCode($code); return $this; } /** * @inheritdoc */ public function setHttpResponseCode($code) { if (!is_numeric($code) || (100 > $code) || (599 < $code)) { throw new \InvalidArgumentException('Invalid HTTP response code'); } $this->isRedirect = (300 <= $code && 307 >= $code); $this->setStatusCode($code); return $this; } /** * @inheritdoc */ public function setStatusHeader($httpCode, $version = null, $phrase = null) { $version = $version === null ? $this->detectVersion() : $version; $phrase = $phrase === null ? $this->getReasonPhrase() : $phrase; $this->setVersion($version); $this->setHttpResponseCode($httpCode); $this->setReasonPhrase($phrase); return $this; } /** * @inheritdoc */ public function getHttpResponseCode() { return $this->getStatusCode(); } /** * Is this a redirect? * * @return boolean */ public function isRedirect() { return $this->isRedirect; } /** * @inheritDoc * * @return string[] * @SuppressWarnings(PHPMD.SerializationAware) */ public function __sleep() { return ['content', 'isRedirect', 'statusCode']; } /** * @inheritDoc */ public function _resetState(): void { $this->metadata = []; $this->content = ''; $this->headers = null; $this->contentSent = false; $this->isRedirect = false; $this->statusCode = 200; $this->reasonPhrase = null; } }