minor #14323 Use PSR-4 everywhere instead of PSR-0 (Tobion, Seldaek)

This PR was merged into the 2.7 branch.

Discussion
----------

Use PSR-4 everywhere instead of PSR-0

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #11189
| License       | MIT

Rebased and updated #12466

Commits
-------

8072213 adjust phpdoc for class not found handler
e2bbf07 add phpunit bridge to psr4
60d4994 Tweak classmap paths
cc17234 Add two more components to psr-4
17f61af Add psr-4 support to the ClassNotFoundFatalErrorHandler
4e85901 Use PSR-4 everywhere instead of PSR-0
This commit is contained in:
Tobias Schultze 2015-04-12 00:30:26 +02:00
commit e00f037472
47 changed files with 84 additions and 102 deletions

View File

@ -79,14 +79,14 @@
"egulias/email-validator": "~1.2"
},
"autoload": {
"psr-0": {
"Symfony\\Bridge\\Doctrine\\": "src/",
"Symfony\\Bridge\\Monolog\\": "src/",
"Symfony\\Bridge\\ProxyManager\\": "src/",
"Symfony\\Bridge\\Swiftmailer\\": "src/",
"Symfony\\Bridge\\Twig\\": "src/",
"Symfony\\Bundle\\": "src/",
"Symfony\\Component\\": "src/"
"psr-4": {
"Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
"Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
"Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
"Symfony\\Bridge\\Swiftmailer\\": "src/Symfony/Bridge/Swiftmailer/",
"Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
"Symfony\\Bundle\\": "src/Symfony/Bundle/",
"Symfony\\Component\\": "src/Symfony/Component/"
},
"classmap": [
"src/Symfony/Component/HttpFoundation/Resources/stubs",

View File

@ -42,9 +42,8 @@
"doctrine/orm": ""
},
"autoload": {
"psr-0": { "Symfony\\Bridge\\Doctrine\\": "" }
"psr-4": { "Symfony\\Bridge\\Doctrine\\": "" }
},
"target-dir": "Symfony/Bridge/Doctrine",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -31,9 +31,8 @@
"symfony/event-dispatcher": "Needed when using log messages in console commands."
},
"autoload": {
"psr-0": { "Symfony\\Bridge\\Monolog\\": "" }
"psr-4": { "Symfony\\Bridge\\Monolog\\": "" }
},
"target-dir": "Symfony/Bridge/Monolog",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -23,9 +23,8 @@
},
"autoload": {
"files": [ "bootstrap.php" ],
"psr-0": { "Symfony\\Bridge\\PhpUnit\\": "" }
"psr-4": { "Symfony\\Bridge\\PhpUnit\\": "" }
},
"target-dir": "Symfony/Bridge/PhpUnit",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -25,11 +25,8 @@
"symfony/config": "~2.3"
},
"autoload": {
"psr-0": {
"Symfony\\Bridge\\ProxyManager\\": ""
}
"psr-4": { "Symfony\\Bridge\\ProxyManager\\": "" }
},
"target-dir": "Symfony/Bridge/ProxyManager",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -26,9 +26,8 @@
"symfony/http-kernel": ""
},
"autoload": {
"psr-0": { "Symfony\\Bridge\\Swiftmailer\\": "" }
"psr-4": { "Symfony\\Bridge\\Swiftmailer\\": "" }
},
"target-dir": "Symfony/Bridge/Swiftmailer",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -51,9 +51,8 @@
"symfony/expression-language": "For using the ExpressionExtension"
},
"autoload": {
"psr-0": { "Symfony\\Bridge\\Twig\\": "" }
"psr-4": { "Symfony\\Bridge\\Twig\\": "" }
},
"target-dir": "Symfony/Bridge/Twig",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -31,9 +31,8 @@
"symfony/dependency-injection": "For using as a service from the container"
},
"autoload": {
"psr-0": { "Symfony\\Bundle\\DebugBundle\\": "" }
"psr-4": { "Symfony\\Bundle\\DebugBundle\\": "" }
},
"target-dir": "Symfony/Bundle/DebugBundle",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -57,9 +57,8 @@
"doctrine/cache": "For using alternative cache drivers"
},
"autoload": {
"psr-0": { "Symfony\\Bundle\\FrameworkBundle\\": "" }
"psr-4": { "Symfony\\Bundle\\FrameworkBundle\\": "" }
},
"target-dir": "Symfony/Bundle/FrameworkBundle",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -41,9 +41,8 @@
"ircmaxell/password-compat": "~1.0"
},
"autoload": {
"psr-0": { "Symfony\\Bundle\\SecurityBundle\\": "" }
"psr-4": { "Symfony\\Bundle\\SecurityBundle\\": "" }
},
"target-dir": "Symfony/Bundle/SecurityBundle",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -33,9 +33,8 @@
"symfony/framework-bundle": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Bundle\\TwigBundle\\": "" }
"psr-4": { "Symfony\\Bundle\\TwigBundle\\": "" }
},
"target-dir": "Symfony/Bundle/TwigBundle",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -29,9 +29,8 @@
"symfony/stopwatch": "~2.2"
},
"autoload": {
"psr-0": { "Symfony\\Bundle\\WebProfilerBundle\\": "" }
"psr-4": { "Symfony\\Bundle\\WebProfilerBundle\\": "" }
},
"target-dir": "Symfony/Bundle/WebProfilerBundle",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -28,9 +28,8 @@
"symfony/process": ""
},
"autoload": {
"psr-0": { "Symfony\\Component\\BrowserKit\\": "" }
"psr-4": { "Symfony\\Component\\BrowserKit\\": "" }
},
"target-dir": "Symfony/Component/BrowserKit",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -24,9 +24,8 @@
"symfony/finder": "~2.0,>=2.0.5"
},
"autoload": {
"psr-0": { "Symfony\\Component\\ClassLoader\\": "" }
"psr-4": { "Symfony\\Component\\ClassLoader\\": "" }
},
"target-dir": "Symfony/Component/ClassLoader",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"

View File

@ -23,9 +23,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Config\\": "" }
"psr-4": { "Symfony\\Component\\Config\\": "" }
},
"target-dir": "Symfony/Component/Config",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -30,9 +30,8 @@
"psr/log": "For using the console logger"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Console\\": "" }
"psr-4": { "Symfony\\Component\\Console\\": "" }
},
"target-dir": "Symfony/Component/Console",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -26,9 +26,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\CssSelector\\": "" }
"psr-4": { "Symfony\\Component\\CssSelector\\": "" }
},
"target-dir": "Symfony/Component/CssSelector",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -77,7 +77,7 @@ class ClassNotFoundFatalErrorHandler implements FatalErrorHandlerInterface
/**
* Tries to guess the full namespace for a given class name.
*
* By default, it looks for PSR-0 classes registered via a Symfony or a Composer
* By default, it looks for PSR-0 and PSR-4 classes registered via a Symfony or a Composer
* autoloader (that should cover all common cases).
*
* @param string $class A class name (without its namespace)
@ -118,6 +118,13 @@ class ClassNotFoundFatalErrorHandler implements FatalErrorHandlerInterface
}
}
}
if ($function[0] instanceof ComposerClassLoader) {
foreach ($function[0]->getPrefixesPsr4() as $prefix => $paths) {
foreach ($paths as $path) {
$classes = array_merge($classes, $this->findClassInPath($path, $class, $prefix));
}
}
}
}
return array_unique($classes);

View File

@ -15,9 +15,30 @@ use Symfony\Component\ClassLoader\ClassLoader as SymfonyClassLoader;
use Symfony\Component\ClassLoader\UniversalClassLoader as SymfonyUniversalClassLoader;
use Symfony\Component\Debug\Exception\FatalErrorException;
use Symfony\Component\Debug\FatalErrorHandler\ClassNotFoundFatalErrorHandler;
use Symfony\Component\Debug\DebugClassLoader;
use Composer\Autoload\ClassLoader as ComposerClassLoader;
class ClassNotFoundFatalErrorHandlerTest extends \PHPUnit_Framework_TestCase
{
public static function setUpBeforeClass()
{
foreach (spl_autoload_functions() as $function) {
if (!is_array($function)) {
continue;
}
// get class loaders wrapped by DebugClassLoader
if ($function[0] instanceof DebugClassLoader) {
$function = $function[0]->getClassLoader();
}
if ($function[0] instanceof ComposerClassLoader) {
$function[0]->add('Symfony\Component\Debug\Tests\Fixtures', dirname(dirname(dirname(dirname(dirname(__DIR__))))));
break;
}
}
}
/**
* @dataProvider provideClassNotFoundData
*/

View File

@ -33,9 +33,8 @@
"symfony/http-kernel": ""
},
"autoload": {
"psr-0": { "Symfony\\Component\\Debug\\": "" }
"psr-4": { "Symfony\\Component\\Debug\\": "" }
},
"target-dir": "Symfony/Component/Debug",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -33,9 +33,8 @@
"symfony/proxy-manager-bridge": "Generate service proxies to lazy load them"
},
"autoload": {
"psr-0": { "Symfony\\Component\\DependencyInjection\\": "" }
"psr-4": { "Symfony\\Component\\DependencyInjection\\": "" }
},
"target-dir": "Symfony/Component/DependencyInjection",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -26,9 +26,8 @@
"symfony/css-selector": ""
},
"autoload": {
"psr-0": { "Symfony\\Component\\DomCrawler\\": "" }
"psr-4": { "Symfony\\Component\\DomCrawler\\": "" }
},
"target-dir": "Symfony/Component/DomCrawler",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -31,9 +31,8 @@
"symfony/http-kernel": ""
},
"autoload": {
"psr-0": { "Symfony\\Component\\EventDispatcher\\": "" }
"psr-4": { "Symfony\\Component\\EventDispatcher\\": "" }
},
"target-dir": "Symfony/Component/EventDispatcher",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\ExpressionLanguage\\": "" }
"psr-4": { "Symfony\\Component\\ExpressionLanguage\\": "" }
},
"target-dir": "Symfony/Component/ExpressionLanguage",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Filesystem\\": "" }
"psr-4": { "Symfony\\Component\\Filesystem\\": "" }
},
"target-dir": "Symfony/Component/Filesystem",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Finder\\": "" }
"psr-4": { "Symfony\\Component\\Finder\\": "" }
},
"target-dir": "Symfony/Component/Finder",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -43,9 +43,8 @@
"symfony/framework-bundle": "For templating with PHP."
},
"autoload": {
"psr-0": { "Symfony\\Component\\Form\\": "" }
"psr-4": { "Symfony\\Component\\Form\\": "" }
},
"target-dir": "Symfony/Component/Form",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -23,10 +23,9 @@
"symfony/expression-language": "~2.4"
},
"autoload": {
"psr-0": { "Symfony\\Component\\HttpFoundation\\": "" },
"classmap": [ "Symfony/Component/HttpFoundation/Resources/stubs" ]
"psr-4": { "Symfony\\Component\\HttpFoundation\\": "" },
"classmap": [ "Resources/stubs" ]
},
"target-dir": "Symfony/Component/HttpFoundation",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -53,9 +53,8 @@
"symfony/var-dumper": ""
},
"autoload": {
"psr-0": { "Symfony\\Component\\HttpKernel\\": "" }
"psr-4": { "Symfony\\Component\\HttpKernel\\": "" }
},
"target-dir": "Symfony/Component/HttpKernel",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -34,11 +34,10 @@
"ext-intl": "to use the component with locales other than \"en\""
},
"autoload": {
"psr-0": { "Symfony\\Component\\Intl\\": "" },
"classmap": [ "Symfony/Component/Intl/Resources/stubs" ],
"files": [ "Symfony/Component/Intl/Resources/stubs/functions.php" ]
"psr-4": { "Symfony\\Component\\Intl\\": "" },
"classmap": [ "Resources/stubs" ],
"files": [ "Resources/stubs/functions.php" ]
},
"target-dir": "Symfony/Component/Intl",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -23,9 +23,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Locale\\": "" }
"psr-4": { "Symfony\\Component\\Locale\\": "" }
},
"target-dir": "Symfony/Component/Locale",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\OptionsResolver\\": "" }
"psr-4": { "Symfony\\Component\\OptionsResolver\\": "" }
},
"target-dir": "Symfony/Component/OptionsResolver",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Process\\": "" }
"psr-4": { "Symfony\\Component\\Process\\": "" }
},
"target-dir": "Symfony/Component/Process",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\PropertyAccess\\": "" }
"psr-4": { "Symfony\\Component\\PropertyAccess\\": "" }
},
"target-dir": "Symfony/Component/PropertyAccess",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -38,9 +38,8 @@
"doctrine/annotations": "For using the annotation loader"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Routing\\": "" }
"psr-4": { "Symfony\\Component\\Routing\\": "" }
},
"target-dir": "Symfony/Component/Routing",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -31,9 +31,8 @@
"doctrine/dbal": "For using the built-in ACL implementation"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Security\\Acl\\": "" }
"psr-4": { "Symfony\\Component\\Security\\Acl\\": "" }
},
"target-dir": "Symfony/Component/Security/Acl",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -36,9 +36,8 @@
"ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Security\\Core\\": "" }
"psr-4": { "Symfony\\Component\\Security\\Core\\": "" }
},
"target-dir": "Symfony/Component/Security/Core",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -27,9 +27,8 @@
"symfony/http-foundation": "For using the class SessionTokenStorage."
},
"autoload": {
"psr-0": { "Symfony\\Component\\Security\\Csrf\\": "" }
"psr-4": { "Symfony\\Component\\Security\\Csrf\\": "" }
},
"target-dir": "Symfony/Component/Security/Csrf",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -33,9 +33,8 @@
"symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Security\\Http\\": "" }
"psr-4": { "Symfony\\Component\\Security\\Http\\": "" }
},
"target-dir": "Symfony/Component/Security/Http",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -49,9 +49,8 @@
"ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Security\\": "" }
"psr-4": { "Symfony\\Component\\Security\\": "" }
},
"target-dir": "Symfony/Component/Security",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -34,9 +34,8 @@
"symfony/property-access": "For using the ObjectNormalizer."
},
"autoload": {
"psr-0": { "Symfony\\Component\\Serializer\\": "" }
"psr-4": { "Symfony\\Component\\Serializer\\": "" }
},
"target-dir": "Symfony/Component/Serializer",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Stopwatch\\": "" }
"psr-4": { "Symfony\\Component\\Stopwatch\\": "" }
},
"target-dir": "Symfony/Component/Stopwatch",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -26,9 +26,8 @@
"psr/log": "For using debug logging in loaders"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Templating\\": "" }
"psr-4": { "Symfony\\Component\\Templating\\": "" }
},
"target-dir": "Symfony/Component/Templating",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -34,9 +34,8 @@
"psr/log": "To use logging capability in translator"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Translation\\": "" }
"psr-4": { "Symfony\\Component\\Translation\\": "" }
},
"target-dir": "Symfony/Component/Translation",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -43,9 +43,8 @@
"symfony/expression-language": "For using the 2.4 Expression validator"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Validator\\": "" }
"psr-4": { "Symfony\\Component\\Validator\\": "" }
},
"target-dir": "Symfony/Component/Validator",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -26,9 +26,8 @@
},
"autoload": {
"files": [ "Resources/functions/dump.php" ],
"psr-0": { "Symfony\\Component\\VarDumper\\": "" }
"psr-4": { "Symfony\\Component\\VarDumper\\": "" }
},
"target-dir": "Symfony/Component/VarDumper",
"minimum-stability": "dev",
"extra": {
"branch-alias": {

View File

@ -22,9 +22,8 @@
"symfony/phpunit-bridge": "~2.7"
},
"autoload": {
"psr-0": { "Symfony\\Component\\Yaml\\": "" }
"psr-4": { "Symfony\\Component\\Yaml\\": "" }
},
"target-dir": "Symfony/Component/Yaml",
"minimum-stability": "dev",
"extra": {
"branch-alias": {