robloach / class-loader-adapter
类加载器适配器提供了一种与多种不同类加载器交互的通用接口。
dev-master
2013-07-18 16:05 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- composer/composer: 1.*
- phpunit/phpunit: 3.*
- symfony/class-loader: 2.*
Suggests
- composer/composer: Allows interaction with the Composer ClassLoader
- symfony/classloader: Allows interaction with the Symfony ClassLoaders
This package is auto-updated.
Last update: 2024-09-10 08:53:59 UTC
README
与多个不同类加载器交互的通用接口。
设计
建议为您的应用程序只使用一个类加载器接口,并在应用程序启动点初始化和使用一次。然而,有时允许在保持相同API的情况下切换类加载器可能很有用。类加载器适配器旨在在许多不同的第三方类加载器之间提供这种接口的通用性。
互操作性
- Symfony\Component\ClassLoader\ClassLoader
- Symfony\Component\ClassLoader\MapClassLoader
- Symfony\Component\ClassLoader\UniversalClassLoader
- Composer\Autoload\ClassLoader
用法
使用您想要的任何类加载器初始化
// Initialize the loader with the Symfony UniversalClassLoader. $loader = new RobLoach\ClassLoaderAdapter\Symfony\UniversalClassLoader(); // Initialize the loader with the Composer ClassLoader. $loader = new RobLoach\ClassLoaderAdapter\Composer\ClassLoader();
由于所有类加载器适配器加载器都使用相同的ClassLoaderInterface,您可以以相同的方式与它们交互。
// Add a namespace prefix. $loader->addPrefix('Foo', 'src/'); // Add a class map. $map = array('Foo\Bar' => 'src/Foo/Bar.php'); $loader->addClassMap($map); // Register the class loader so that the classes can be loaded accordingly. $loader->register();
尽管接口已经就位,但类加载器功能和支持在各个类加载器之间略有不同。在切换类加载器时请注意这一点。