在Symfony的2.0.x版本自动加载非PSR0库(Autoloading non-PSR0 li

2019-07-30 21:44发布

Symfony 2.0 Autoloader期待它能够处理的库遵循PSR0PEAR时自动加载的文件标准。 如果你不遵循任何这两个标准(在我的情况,类文件被命名为喜欢name.class.php)的老图书馆,你会如何处理这些库的自动加载?

Symfony 2.1 ,这是很容易作曲家支持classmaps ,可以加载这个类型库的,但你会怎么做在Symfony 2.0.x

Answer 1:

内部app/autoload.php ,创建一个实例MapClassLoader

use Symfony\Component\ClassLoader\MapClassLoader;
use Symfony\Component\ClassLoader\UniversalClassLoader;

// Create default PSR-0 autoloader
$loader = new UniversalClassLoader();
$loader->registerNamespaces(array(
    'Symfony' => array(__DIR__.'/../vendor/symfony/src', __DIR__.'/../vendor/bundles'),
    // ...
));

// Create map autoloader
$mapLoader = new MapClassLoader(array(
    'MyComponent' => __DIR__.'/../library/mycomponent.class.php',
    // ...
));

// Other configurations
// ...

// Register autoloaders
$loader->register();
$mapLoader->register();


文章来源: Autoloading non-PSR0 libraries in Symfony 2.0.x