在Symfony 2.0.x中自动加载非PSR0库

Car*_*dos 4 php autoload symfony psr-0

在自动加载文件时,Symfony 2.0 Autoloader期望它可以处理的库遵循PSR0PEAR标准.如果你有一个不遵循这两个标准中的任何一个的旧库(在我的例子中,类文件被命名为name.class.php),你将如何处理这些库的自动加载?

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

Flo*_*ent 10

在里面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();
Run Code Online (Sandbox Code Playgroud)

  • 我用这个技巧来加载Facebook SDK`:)` (3认同)