1
0
Fork 0

Merge branch '1.6'

pull/6974/merge
Jordi Boggiano 2018-01-04 14:28:12 +01:00
commit 8ff3a8bcc0
4 changed files with 13 additions and 15 deletions

View File

@ -26,7 +26,7 @@
"justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0",
"composer/ca-bundle": "^1.0",
"composer/semver": "^1.0",
"composer/spdx-licenses": "^1.0",
"composer/spdx-licenses": "^1.2",
"seld/jsonlint": "^1.4",
"symfony/console": "^2.7 || ^3.0 || ^4.0",
"symfony/finder": "^2.7 || ^3.0 || ^4.0",

14
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "d3c8dbadf8d41e2c7933e274b2fe1327",
"content-hash": "8c8fe8c8c57c958b318515f636a6839e",
"packages": [
{
"name": "composer/ca-bundle",
@ -348,23 +348,23 @@
},
{
"name": "seld/jsonlint",
"version": "1.6.2",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/jsonlint.git",
"reference": "7a30649c67ee0d19faacfd9fa2cfb6cc032d9b19"
"reference": "9b355654ea99460397b89c132b5c1087b6bf4473"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/7a30649c67ee0d19faacfd9fa2cfb6cc032d9b19",
"reference": "7a30649c67ee0d19faacfd9fa2cfb6cc032d9b19",
"url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9b355654ea99460397b89c132b5c1087b6bf4473",
"reference": "9b355654ea99460397b89c132b5c1087b6bf4473",
"shasum": ""
},
"require": {
"php": "^5.3 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^4.5"
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
},
"bin": [
"bin/jsonlint"
@ -393,7 +393,7 @@
"parser",
"validator"
],
"time": "2017-11-30T15:34:22+00:00"
"time": "2018-01-03T12:13:57+00:00"
},
{
"name": "seld/phar-utils",

View File

@ -785,10 +785,7 @@ HEADER;
// BC handling when converting to a new ClassLoader
if (isset($maps['prefixLengthsPsr4'])) {
$maps['firstCharsPsr4'] = array_map(function () {
return true;
}, $maps['prefixLengthsPsr4']);
unset($maps['prefixLengthsPsr4']);
$maps['firstCharsPsr4'] = array_map('is_array', $maps['prefixLengthsPsr4']);
}
foreach ($maps as $prop => $value) {

View File

@ -44,6 +44,7 @@ class ClassLoader
{
// PSR-4
private $firstCharsPsr4 = array();
private $prefixLengthsPsr4 = array(); // For BC with legacy static maps
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
@ -371,15 +372,15 @@ class ClassLoader
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->firstCharsPsr4[$first])) {
if (isset($this->firstCharsPsr4[$first]) || isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = substr($logicalPathPsr4, $lastPos + 1);
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $pathEnd)) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}