Compare commits

..

3 Commits

Author SHA1 Message Date
Andrei V. Goryunov ca3bb2cb0a upgrade to wellrested v5.1.1, fix 2022-07-29 09:51:37 +03:00
Andrei V. Goryunov c5f49214b5 upgrade to wellrested 5.1.1 2022-07-27 11:32:47 +03:00
Basemaster c153bc0028
provide interfaces prs/http-*-implementation 2021-04-11 14:04:34 +03:00
7 changed files with 51 additions and 19 deletions

View File

@ -17,6 +17,10 @@
"psr/http-server-handler": "~1.0",
"psr/http-server-middleware": "~1.0"
},
"provide": {
"psr/http-message-implementation": "1.0",
"psr/http-factory-implementation": "1.0"
},
"autoload": {
"psr-4": {
"WellRESTed\\": "src/"

View File

@ -7,7 +7,7 @@ use Iterator;
/**
* HeaderCollection provides case-insensitive access to lists of header values.
**
*
* HeaderCollection preserves the cases of keys as they are set, but treats key
* access case insensitively.
*
@ -51,7 +51,7 @@ class HeaderCollection implements ArrayAccess, Iterator
* @param string $offset
* @return bool
*/
public function offsetExists($offset)
public function offsetExists($offset): bool
{
return isset($this->values[strtolower($offset)]);
}
@ -60,7 +60,7 @@ class HeaderCollection implements ArrayAccess, Iterator
* @param mixed $offset
* @return string[]
*/
public function offsetGet($offset)
public function offsetGet($offset): array
{
return $this->values[strtolower($offset)];
}
@ -69,7 +69,7 @@ class HeaderCollection implements ArrayAccess, Iterator
* @param string $offset
* @param string $value
*/
public function offsetSet($offset, $value)
public function offsetSet($offset, $value): void
{
$normalized = strtolower($offset);
@ -92,7 +92,7 @@ class HeaderCollection implements ArrayAccess, Iterator
/**
* @param string $offset
*/
public function offsetUnset($offset)
public function offsetUnset($offset): void
{
$normalized = strtolower($offset);
unset($this->fields[$normalized]);
@ -107,27 +107,30 @@ class HeaderCollection implements ArrayAccess, Iterator
// -------------------------------------------------------------------------
// Iterator
public function current()
/**
* @return string[]
*/
public function current(): array
{
return $this->values[$this->keys[$this->position]];
}
public function next()
public function next(): void
{
++$this->position;
}
public function key()
public function key(): string
{
return $this->fields[$this->keys[$this->position]];
}
public function valid()
public function valid(): bool
{
return isset($this->keys[$this->position]);
}
public function rewind()
public function rewind(): void
{
$this->position = 0;
}

View File

@ -195,7 +195,7 @@ class Request extends Message implements RequestInterface
$request = clone $this;
$newHost = $uri->getHost();
$oldHost = isset($request->headers['Host']) ? $request->headers['Host'] : '';
$oldHost = $request->headers['Host'] ?? '';
if ($preserveHost === false) {
// Update Host

View File

@ -0,0 +1,25 @@
<?php
namespace WellRESTed\Message;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\UriInterface;
class RequestFactory implements RequestFactoryInterface
{
/**
* Create a new request.
*
* @param string $method The HTTP method associated with the request.
* @param UriInterface|string $uri The URI associated with the request. If
* the value is a string, the factory MUST create a UriInterface
* instance based on it.
*
* @return RequestInterface
*/
public function createRequest(string $method, $uri): RequestInterface
{
return new Request($method, $uri);
}
}

View File

@ -117,21 +117,21 @@ class UploadedFile implements UploadedFileInterface
*
* @see http://php.net/is_uploaded_file
* @see http://php.net/move_uploaded_file
* @param string $path Path to which to move the uploaded file.
* @param string $targetPath Path to which to move the uploaded file.
* @return void
* @throws InvalidArgumentException if the $path specified is invalid.
* @throws RuntimeException on any error during the move operation, or on
* the second or subsequent call to the method.
*/
public function moveTo($path)
public function moveTo($targetPath)
{
if ($this->tmpName === null || !file_exists($this->tmpName)) {
throw new RuntimeException("File {$this->tmpName} does not exist.");
}
if (php_sapi_name() === 'cli') {
rename($this->tmpName, $path);
rename($this->tmpName, $targetPath);
} else {
move_uploaded_file($this->tmpName, $path);
move_uploaded_file($this->tmpName, $targetPath);
}
$this->moved = true;
}

View File

@ -292,7 +292,7 @@ class Uri implements UriInterface
*/
public function withScheme($scheme)
{
$scheme = $scheme ? strtolower($scheme) : '';
$scheme = strtolower($scheme ?? '');
if (!in_array($scheme, ['', 'http', 'https'])) {
throw new InvalidArgumentException('Scheme must be http, https, or empty.');
}
@ -446,7 +446,7 @@ class Uri implements UriInterface
public function withFragment($fragment)
{
$uri = clone $this;
$uri->fragment = $fragment;
$uri->fragment = $fragment ?? '';
return $uri;
}
@ -520,7 +520,7 @@ class Uri implements UriInterface
* @param string $subject
* @return string
*/
private function percentEncode($subject)
private function percentEncode(string $subject)
{
$reserved = ':/?#[]@!$&\'()*+,;=';
$reserved = preg_quote($reserved);

View File

@ -278,7 +278,7 @@ class Router implements MiddlewareInterface
usort($matches, $compareByLength);
}
$bestMatch = $matches[0];
$bestMatch = array_values($matches)[0];
return $this->prefixRoutes[$bestMatch];
}