},
{
"name": "guzzlehttp/psr7",
- "version": "1.8.1",
+ "version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1"
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1",
- "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91",
"shasum": ""
},
"require": {
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/1.8.1"
+ "source": "https://github.com/guzzle/psr7/tree/1.8.2"
},
- "time": "2021-03-21T16:25:00+00:00"
+ "time": "2021-04-26T09:17:50+00:00"
},
{
"name": "paragonie/constant_time_encoding",
},
{
"name": "symfony/css-selector",
- "version": "v5.2.4",
+ "version": "v5.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f"
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f",
- "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/59a684f5ac454f066ecbe6daecce6719aed283fb",
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb",
"shasum": ""
},
"require": {
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.2.4"
+ "source": "https://github.com/symfony/css-selector/tree/v5.3.0-BETA1"
},
"funding": [
{
"type": "tidelift"
}
],
- "time": "2021-01-27T10:01:46+00:00"
+ "time": "2021-04-07T16:07:52+00:00"
},
{
"name": "symfony/polyfill-mbstring",
+
+
class InstalledVersions
{
private static $installed = array (
),
'guzzlehttp/psr7' =>
array (
- 'pretty_version' => '1.8.1',
- 'version' => '1.8.1.0',
+ 'pretty_version' => '1.8.2',
+ 'version' => '1.8.2.0',
'aliases' =>
array (
),
- 'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1',
+ 'reference' => 'dc960a912984efb74d0a90222870c72c87f10c91',
),
'paragonie/constant_time_encoding' =>
array (
),
'symfony/css-selector' =>
array (
- 'pretty_version' => 'v5.2.4',
- 'version' => '5.2.4.0',
+ 'pretty_version' => 'v5.2.7',
+ 'version' => '5.2.7.0',
'aliases' =>
array (
),
- 'reference' => 'f65f217b3314504a1ec99c2d6ef69016bb13490f',
+ 'reference' => '59a684f5ac454f066ecbe6daecce6719aed283fb',
),
'symfony/polyfill-mbstring' =>
array (
$packages[] = array_keys($installed['versions']);
}
-
if (1 === \count($packages)) {
return $packages[0];
}
+
private static function getInstalled()
{
if (null === self::$canGetVendors) {
return array(
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
- '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
{
public static $files = array (
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
- '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
+ '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
},
{
"name": "guzzlehttp/psr7",
- "version": "1.8.1",
- "version_normalized": "1.8.1.0",
+ "version": "1.8.2",
+ "version_normalized": "1.8.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1"
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1",
- "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91",
+ "reference": "dc960a912984efb74d0a90222870c72c87f10c91",
"shasum": ""
},
"require": {
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
- "time": "2021-03-21T16:25:00+00:00",
+ "time": "2021-04-26T09:17:50+00:00",
"type": "library",
"extra": {
"branch-alias": {
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/1.8.1"
+ "source": "https://github.com/guzzle/psr7/tree/1.8.2"
},
"install-path": "../guzzlehttp/psr7"
},
},
{
"name": "symfony/css-selector",
- "version": "v5.2.4",
- "version_normalized": "5.2.4.0",
+ "version": "v5.2.7",
+ "version_normalized": "5.2.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f"
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f",
- "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/59a684f5ac454f066ecbe6daecce6719aed283fb",
+ "reference": "59a684f5ac454f066ecbe6daecce6719aed283fb",
"shasum": ""
},
"require": {
"php": ">=7.2.5"
},
- "time": "2021-01-27T10:01:46+00:00",
+ "time": "2021-04-07T16:07:52+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.2.4"
+ "source": "https://github.com/symfony/css-selector/tree/v5.3.0-BETA1"
},
"funding": [
{
),
'guzzlehttp/psr7' =>
array (
- 'pretty_version' => '1.8.1',
- 'version' => '1.8.1.0',
+ 'pretty_version' => '1.8.2',
+ 'version' => '1.8.2.0',
'aliases' =>
array (
),
- 'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1',
+ 'reference' => 'dc960a912984efb74d0a90222870c72c87f10c91',
),
'paragonie/constant_time_encoding' =>
array (
),
'symfony/css-selector' =>
array (
- 'pretty_version' => 'v5.2.4',
- 'version' => '5.2.4.0',
+ 'pretty_version' => 'v5.2.7',
+ 'version' => '5.2.7.0',
'aliases' =>
array (
),
- 'reference' => 'f65f217b3314504a1ec99c2d6ef69016bb13490f',
+ 'reference' => '59a684f5ac454f066ecbe6daecce6719aed283fb',
),
'symfony/polyfill-mbstring' =>
array (
--- /dev/null
+name: Static analysis
+
+on:
+ pull_request:
+
+jobs:
+ php-cs-fixer:
+ name: PHP-CS-Fixer
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v2
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: '7.4'
+ coverage: none
+ extensions: mbstring
+
+ - name: Download dependencies
+ run: composer update --no-interaction --no-progress
+
+ - name: Download PHP CS Fixer
+ run: composer require "friendsofphp/php-cs-fixer:2.18.4"
+
+ - name: Execute PHP CS Fixer
+ run: vendor/bin/php-cs-fixer fix --diff-format udiff --dry-run
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
-## [Unreleased]
+## Unreleased
-## [1.8.1] - 2021-03-21
+## 1.8.2 - 2021-04-26
+
+### Fixed
+
+- Handle possibly unset `url` in `stream_get_meta_data`
+
+## 1.8.1 - 2021-03-21
### Fixed
- Issue parsing IPv6 URLs
- Issue modifying ServerRequest lost all its attributes
-## [1.8.0] - 2021-03-21
+## 1.8.0 - 2021-03-21
### Added
- Issue when creating stream from `php://input` and curl-ext is not installed
- Broken `Utils::tryFopen()` on PHP 8
-## [1.7.0] - 2020-09-30
+## 1.7.0 - 2020-09-30
### Added
-[Unreleased]: https://github.com/guzzle/psr7/compare/1.6.0...HEAD
[1.6.0]: https://github.com/guzzle/psr7/compare/1.5.2...1.6.0
[1.5.2]: https://github.com/guzzle/psr7/compare/1.5.1...1.5.2
[1.5.1]: https://github.com/guzzle/psr7/compare/1.5.0...1.5.1
$url
);
- $result = parse_url($prefix.$encodedUrl);
+ $result = parse_url($prefix . $encodedUrl);
if ($result === false) {
return false;
->withQueryParams($request->getQueryParams())
->withCookieParams($request->getCookieParams())
->withUploadedFiles($request->getUploadedFiles());
-
+
foreach ($request->getAttributes() as $key => $value) {
$new = $new->withAttribute($key, $value);
}
* The 'php://input' is a special stream with quirks and inconsistencies.
* We avoid using that stream by reading it into php://temp
*/
- if (\stream_get_meta_data($resource)['uri'] === 'php://input') {
+ $metaData = \stream_get_meta_data($resource);
+ if (isset($metaData['uri']) && $metaData['uri'] === 'php://input') {
$stream = self::tryFopen('php://temp', 'w+');
fwrite($stream, stream_get_contents($resource));
fseek($stream, 0);
public function __construct(Tokenizer $tokenizer = null)
{
- $this->tokenizer = $tokenizer ?: new Tokenizer();
+ $this->tokenizer = $tokenizer ?? new Tokenizer();
}
/**
public function __construct(ParserInterface $parser = null)
{
- $this->mainParser = $parser ?: new Parser();
+ $this->mainParser = $parser ?? new Parser();
$this
->registerExtension(new Extension\NodeExtension())