Skip to content
This repository has been archived by the owner on Dec 31, 2022. It is now read-only.

Commit

Permalink
Merge pull request #15 from sunrise-php/release/v1.1.0
Browse files Browse the repository at this point in the history
v1.1.0
  • Loading branch information
fenric authored Dec 26, 2020
2 parents c51ea9c + 4029dea commit 03db82a
Show file tree
Hide file tree
Showing 21 changed files with 1,387 additions and 1,190 deletions.
3 changes: 0 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,5 @@ insert_final_newline = true
[*.md]
trim_trailing_whitespace = false

[*.php]
indent_style = tab

[*.yml]
indent_size = 2
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
.php_cs.cache
.phpunit.result.cache
composer.lock
coverage.xml
phpcs.xml
phpunit.xml
vendor/
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ matrix:
- php: 7.1
- php: 7.2
- php: 7.3
- php: 7.4
- php: nightly
fast_finish: true

before_install:
Expand All @@ -13,4 +15,4 @@ before_install:
install:
- travis_retry composer install --no-interaction --prefer-source --no-suggest

script: vendor/bin/phpunit --colors=always --coverage-text
script: php vendor/bin/phpunit --colors=always --coverage-text
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2018 Anatoly Fenric
Copyright (c) 2018 Sunrise // PHP

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
8 changes: 2 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## HTTP Server Request wrapper for PHP 7.1+ based on PSR-7 & PSR-17
## HTTP server request wrapper for PHP 7.1+ (incl. PHP 8) based on PSR-7 & PSR-17

[![Gitter](https://badges.gitter.im/sunrise-php/support.png)](https://gitter.im/sunrise-php/support)
[![Build Status](https://api.travis-ci.com/sunrise-php/http-server-request.svg?branch=master)](https://travis-ci.com/sunrise-php/http-server-request)
[![Build Status](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/badges/build.png?b=master)](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/build-status/master)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/?branch=master)
[![Code Coverage](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/sunrise-php/http-server-request/?branch=master)
[![Latest Stable Version](https://poser.pugx.org/sunrise/http-server-request/v/stable)](https://packagist.org/packages/sunrise/http-server-request)
Expand Down Expand Up @@ -30,10 +30,6 @@ $request = ServerRequestFactory::fromGlobals();
php vendor/bin/phpunit
```

## Api documentation

https://phpdoc.fenric.ru/

## Useful links

* https://www.php-fig.org/psr/psr-7/
Expand Down
27 changes: 19 additions & 8 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
{
"name": "sunrise/http-server-request",
"description": "Sunrise HTTP Server Request wrapper for PHP 7.1+ based on PSR-7 & PSR-17",
"keywords": ["fenric", "sunrise", "http-server-request", "psr-7", "psr-17"],
"homepage": "https://github.com/sunrise-php/http-server-request",
"description": "Sunrise HTTP server request wrapper for PHP 7.1+ based on PSR-7 & PSR-17",
"license": "MIT",
"keywords": [
"fenric",
"sunrise",
"http",
"http-server-request",
"psr-7",
"psr-17",
"php7",
"php8"
],
"authors": [
{
"name": "Anatoly Fenric",
Expand All @@ -17,15 +26,16 @@
}
],
"require": {
"php": "^7.1",
"php": "^7.1|^8.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0",
"sunrise/http-message": "^1.0",
"sunrise/stream": "^1.0",
"sunrise/uri": "^1.0"
"sunrise/http-message": "^1.4",
"sunrise/stream": "^1.2",
"sunrise/uri": "^1.2"
},
"require-dev": {
"phpunit/phpunit": "7.5.6"
"phpunit/phpunit": "7.5.20|9.5.0",
"sunrise/coding-standard": "1.0.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
Expand All @@ -45,7 +55,8 @@
},
"scripts": {
"test": [
"phpunit --colors=always --coverage-text"
"phpunit --colors=always --coverage-text",
"phpcs"
]
}
}
8 changes: 4 additions & 4 deletions functions/request_body.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@
*/
function request_body() : StreamInterface
{
$resource = \fopen('php://temp', 'r+b');
$resource = \fopen('php://temp', 'r+b');

\stream_copy_to_stream(\fopen('php://input', 'rb'), $resource);
\stream_copy_to_stream(\fopen('php://input', 'rb'), $resource);

\rewind($resource);
\rewind($resource);

return (new StreamFactory)->createStreamFromResource($resource);
return (new StreamFactory)->createStreamFromResource($resource);
}
44 changes: 19 additions & 25 deletions functions/request_files.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,35 +34,29 @@
*/
function request_files(array $files) : array
{
$walker = function($path, $size, $error, $name, $type) use(& $walker)
{
if (! \is_array($path))
{
$stream = (new StreamFactory)->createStreamFromFile($path, 'rb');
$walker = function ($path, $size, $error, $name, $type) use (&$walker) {
if (! \is_array($path)) {
$stream = (new StreamFactory)->createStreamFromFile($path, 'rb');

return (new UploadedFileFactory)->createUploadedFile($stream, $size, $error, $name, $type);
}
return (new UploadedFileFactory)->createUploadedFile($stream, $size, $error, $name, $type);
}

$result = [];
$result = [];
foreach ($path as $key => $value) {
$result[$key] = $walker($path[$key], $size[$key], $error[$key], $name[$key], $type[$key]);
}

foreach ($path as $key => $value)
{
$result[$key] = $walker($path[$key], $size[$key], $error[$key], $name[$key], $type[$key]);
}
return $result;
};

return $result;
};
$result = [];
foreach ($files as $key => $file) {
if (UPLOAD_ERR_NO_FILE === $file['error']) {
continue;
}

$result = [];
$result[$key] = $walker($file['tmp_name'], $file['size'], $file['error'], $file['name'], $file['type']);
}

foreach ($files as $key => $file)
{
if (UPLOAD_ERR_NO_FILE === $file['error']) {
continue;
}

$result[$key] = $walker($file['tmp_name'], $file['size'], $file['error'], $file['name'], $file['type']);
}

return $result;
return $result;
}
29 changes: 13 additions & 16 deletions functions/request_headers.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,20 @@
*/
function request_headers(array $server) : array
{
$result = [];
$result = [];
foreach ($server as $key => $value) {
if (! (0 === \strncmp('HTTP_', $key, 5))) {
continue;
}

foreach ($server as $key => $value)
{
if (! (0 === \strncmp('HTTP_', $key, 5)))
{
continue;
}
$name = \substr($key, 5);
$name = \strtolower($name);
$name = \strtr($name, '_', ' ');
$name = \ucwords($name);
$name = \strtr($name, ' ', '-');

$name = \substr($key, 5);
$name = \strtolower($name);
$name = \strtr($name, '_', ' ');
$name = \ucwords($name);
$name = \strtr($name, ' ', '-');
$result[$name] = $value;
}

$result[$name] = $value;
}

return $result;
return $result;
}
16 changes: 7 additions & 9 deletions functions/request_http_version.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,13 @@
*/
function request_http_version(array $server) : string
{
$regex = '/^HTTP\/(\d(?:\.\d)?)$/';
$regex = '/^HTTP\/(\d(?:\.\d)?)$/';

if (isset($server['SERVER_PROTOCOL']))
{
if (\preg_match($regex, $server['SERVER_PROTOCOL'], $matches))
{
return $matches[1];
}
}
if (isset($server['SERVER_PROTOCOL'])) {
if (\preg_match($regex, $server['SERVER_PROTOCOL'], $matches)) {
return $matches[1];
}
}

return '1.1';
return '1.1';
}
2 changes: 1 addition & 1 deletion functions/request_method.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@
*/
function request_method(array $server) : string
{
return $server['REQUEST_METHOD'] ?? 'GET';
return $server['REQUEST_METHOD'] ?? 'GET';
}
70 changes: 29 additions & 41 deletions functions/request_uri.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,45 +30,33 @@
*/
function request_uri(array $server) : UriInterface
{
if (\array_key_exists('HTTPS', $server))
{
if (! ('off' === $server['HTTPS']))
{
$scheme = 'https://';
}
}

if (\array_key_exists('HTTP_HOST', $server))
{
$domain = $server['HTTP_HOST'];
}
else if (\array_key_exists('SERVER_NAME', $server))
{
$domain = $server['SERVER_NAME'];

if (\array_key_exists('SERVER_PORT', $server))
{
$domain .= ':' . $server['SERVER_PORT'];
}
}

if (\array_key_exists('REQUEST_URI', $server))
{
$target = $server['REQUEST_URI'];
}
else if (\array_key_exists('PHP_SELF', $server))
{
$target = $server['PHP_SELF'];

if (\array_key_exists('QUERY_STRING', $server))
{
$target .= '?' . $server['QUERY_STRING'];
}
}

return (new UriFactory)->createUri(
($scheme ?? 'http://') .
($domain ?? 'localhost') .
($target ?? '/')
);
if (\array_key_exists('HTTPS', $server)) {
if (! ('off' === $server['HTTPS'])) {
$scheme = 'https://';
}
}

if (\array_key_exists('HTTP_HOST', $server)) {
$domain = $server['HTTP_HOST'];
} elseif (\array_key_exists('SERVER_NAME', $server)) {
$domain = $server['SERVER_NAME'];
if (\array_key_exists('SERVER_PORT', $server)) {
$domain .= ':' . $server['SERVER_PORT'];
}
}

if (\array_key_exists('REQUEST_URI', $server)) {
$target = $server['REQUEST_URI'];
} elseif (\array_key_exists('PHP_SELF', $server)) {
$target = $server['PHP_SELF'];
if (\array_key_exists('QUERY_STRING', $server)) {
$target .= '?' . $server['QUERY_STRING'];
}
}

return (new UriFactory)->createUri(
($scheme ?? 'http://') .
($domain ?? 'localhost') .
($target ?? '/')
);
}
8 changes: 8 additions & 0 deletions phpcs.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<ruleset name="Sunrise Coding Standard">
<rule ref="./vendor/sunrise/coding-standard/ruleset.xml"/>

<file>functions</file>
<file>src</file>
<file>tests</file>
</ruleset>
Loading

0 comments on commit 03db82a

Please sign in to comment.