Submit
Path:
~
/
/
proc
/
self
/
root
/
opt
/
psa
/
admin
/
plib
/
modules
/
wp-toolkit
/
vendor
/
php-http
/
message
/
src
/
Builder
/
File Content:
ResponseBuilder.php
<?php namespace WPToolkitDependenciesIsolationPrefix\Http\Message\Builder; use Psr\Http\Message\ResponseInterface; /** * Fills response object with values. */ class ResponseBuilder { /** * The response to be built. * * @var ResponseInterface */ protected $response; /** * Create builder for the given response. */ public function __construct(ResponseInterface $response) { $this->response = $response; } /** * Return response. * * @return ResponseInterface */ public function getResponse() { return $this->response; } /** * Add headers represented by an array of header lines. * * @param string[] $headers response headers as array of header lines * * @return $this * * @throws \UnexpectedValueException for invalid header values * @throws \InvalidArgumentException for invalid status code arguments */ public function setHeadersFromArray(array $headers) { $status = \array_shift($headers); $this->setStatus($status); foreach ($headers as $headerLine) { $headerLine = \trim($headerLine); if ('' === $headerLine) { continue; } $this->addHeader($headerLine); } return $this; } /** * Add headers represented by a single string. * * @param string $headers response headers as single string * * @return $this * * @throws \InvalidArgumentException if $headers is not a string on object with __toString() * @throws \UnexpectedValueException for invalid header values */ public function setHeadersFromString($headers) { if (!(\is_string($headers) || \is_object($headers) && \method_exists($headers, '__toString'))) { throw new \InvalidArgumentException(\sprintf('%s expects parameter 1 to be a string, %s given', __METHOD__, \is_object($headers) ? \get_class($headers) : \gettype($headers))); } $this->setHeadersFromArray(\explode("\r\n", $headers)); return $this; } /** * Set response status from a status string. * * @param string $statusLine response status as a string * * @return $this * * @throws \InvalidArgumentException for invalid status line */ public function setStatus($statusLine) { $parts = \explode(' ', $statusLine, 3); if (\count($parts) < 2 || 0 !== \strpos(\strtolower($parts[0]), 'http/')) { throw new \InvalidArgumentException(\sprintf('"%s" is not a valid HTTP status line', $statusLine)); } $reasonPhrase = \count($parts) > 2 ? $parts[2] : ''; $this->response = $this->response->withStatus((int) $parts[1], $reasonPhrase)->withProtocolVersion(\substr($parts[0], 5)); return $this; } /** * Add header represented by a string. * * @param string $headerLine response header as a string * * @return $this * * @throws \InvalidArgumentException for invalid header names or values */ public function addHeader($headerLine) { $parts = \explode(':', $headerLine, 2); if (2 !== \count($parts)) { throw new \InvalidArgumentException(\sprintf('"%s" is not a valid HTTP header line', $headerLine)); } $name = \trim($parts[0]); $value = \trim($parts[1]); if ($this->response->hasHeader($name)) { $this->response = $this->response->withAddedHeader($name, $value); } else { $this->response = $this->response->withHeader($name, $value); } return $this; } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
ResponseBuilder.php
3716 bytes
0644
N4ST4R_ID | Naxtarrr