diff --git a/core/composer.json b/core/composer.json index 64928b1..113a2b3 100644 --- a/core/composer.json +++ b/core/composer.json @@ -9,5 +9,11 @@ "symfony/yaml": "2.1.*", "twig/twig": "1.8.*" }, + "autoload": { + "psr-0": { + "Drupal\\Core": "lib", + "Drupal\\Component": "lib" + } + }, "minimum-stability": "beta" } diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index 22eb5b8..9e731d9 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -3038,32 +3038,17 @@ function drupal_classloader() { break; } - // Register explicit PSR-0 vendor namespaces. - $loader->registerNamespaces(array( - // All Symfony-borrowed code lives in /core/vendor/symfony. - 'Symfony\Component\ClassLoader' => DRUPAL_ROOT . '/core/vendor/symfony/class-loader', - 'Symfony\Component\DependencyInjection' => DRUPAL_ROOT . '/core/vendor/symfony/dependency-injection', - 'Symfony\Component\EventDispatcher' => DRUPAL_ROOT . '/core/vendor/symfony/event-dispatcher', - 'Symfony\Component\HttpFoundation' => DRUPAL_ROOT . '/core/vendor/symfony/http-foundation', - 'Symfony\Component\HttpKernel' => DRUPAL_ROOT . '/core/vendor/symfony/http-kernel', - 'Symfony\Component\Routing' => DRUPAL_ROOT . '/core/vendor/symfony/routing', - 'Symfony\Component\Yaml' => DRUPAL_ROOT . '/core/vendor/symfony/yaml', - )); - // Register PEAR-style vendor namespaces. - $loader->registerPrefixes(array( - // All Twig-borrowed code lives in /core/vendor/twig. - 'Twig' => DRUPAL_ROOT . '/core/vendor/twig/twig/lib', - )); - // Register the Drupal namespace for classes in core as a fallback. - // This allows to register additional namespaces within the Drupal namespace - // (e.g., for modules) and avoids an additional file_exists() on the Drupal - // core namespace, since the class loader can already determine the best - // namespace match based on a string comparison. It further allows modules - // to register/overload namespaces in Drupal core. - $loader->registerNamespaceFallbacks(array( - // All Drupal-namespaced code in core lives in /core/lib/Drupal. - 'Drupal' => DRUPAL_ROOT . '/core/lib', - )); + // Load the PSR-0 namespaces. + $namespaces = include DRUPAL_ROOT . '/core/vendor/composer/autoload_namespaces.php'; + foreach ($namespaces as $namespace => $path) { + // Determine whether we are registering with a PEAR-like namespace prefix. + if (strpos($namespace, '_')) { + $loader->registerPrefix($namespace, $path); + } + else { + $loader->registerNamespace($namespace, $path); + } + } // Register the loader with PHP. $loader->register(); diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php index 6ae0e91..922baa5 100644 --- a/core/vendor/composer/autoload_namespaces.php +++ b/core/vendor/composer/autoload_namespaces.php @@ -14,4 +14,6 @@ return array( 'Symfony\\Component\\EventDispatcher' => $vendorDir . '/symfony/event-dispatcher/', 'Symfony\\Component\\DependencyInjection' => $vendorDir . '/symfony/dependency-injection/', 'Symfony\\Component\\ClassLoader' => $vendorDir . '/symfony/class-loader/', + 'Drupal\\Core' => $baseDir . '/lib', + 'Drupal\\Component' => $baseDir . '/lib', );