diff --git a/src/Symfony/Component/ClassLoader/UniversalClassLoader.php b/src/Symfony/Component/ClassLoader/UniversalClassLoader.php index f67a127e3d..60f245ad1b 100644 --- a/src/Symfony/Component/ClassLoader/UniversalClassLoader.php +++ b/src/Symfony/Component/ClassLoader/UniversalClassLoader.php @@ -141,7 +141,17 @@ class UniversalClassLoader } /** - * Registers the directory to use as a fallback for class prefixes. + * Registers a directory to use as a fallback for namespaces. + * + * @param string $dir A directory + */ + public function registerNamespaceFallback($dir) + { + $this->namespaceFallbacks[] = $dir; + } + + /** + * Registers directories to use as a fallback for class prefixes. * * @param array $dirs An array of directories * @@ -152,6 +162,16 @@ class UniversalClassLoader $this->prefixFallbacks = $dirs; } + /** + * Registers a directory to use as a fallback for class prefixes. + * + * @param string $dir A directory + */ + public function registerPrefixFallback($dir) + { + $this->prefixFallbacks[] = $dir; + } + /** * Registers an array of namespaces * diff --git a/tests/Symfony/Tests/Component/ClassLoader/UniversalClassLoaderTest.php b/tests/Symfony/Tests/Component/ClassLoader/UniversalClassLoaderTest.php index 92a4eeda06..a1fbfa5031 100644 --- a/tests/Symfony/Tests/Component/ClassLoader/UniversalClassLoaderTest.php +++ b/tests/Symfony/Tests/Component/ClassLoader/UniversalClassLoaderTest.php @@ -80,6 +80,20 @@ class UniversalClassLoaderTest extends \PHPUnit_Framework_TestCase ); } + public function testRegisterPrefixFallback() + { + $loader = new UniversalClassLoader(); + $loader->registerPrefixFallback(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'); + $this->assertEquals(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/fallback'), $loader->getPrefixFallbacks()); + } + + public function testRegisterNamespaceFallback() + { + $loader = new UniversalClassLoader(); + $loader->registerNamespaceFallback(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Namespaced/fallback'); + $this->assertEquals(array(__DIR__.DIRECTORY_SEPARATOR.'Fixtures/Namespaced/fallback'), $loader->getNamespaceFallbacks()); + } + /** * @dataProvider getLoadClassNamespaceCollisionTests */