require_once()和autoloader - 如何加载平板php?

Don*_*sto 2 php symfony

我有一个文件(PHP的xmlrpc库),我想用到Symfony2类(所以在Symfony2项目中).

我不能使用自动加载器,因为这里写的

能够[自动加载器]从实现以下约定之一的文件加载类:

1) The technical interoperability standards for PHP 5.3 namespaces and 
   class names;
2) The PEAR naming convention for classes.
Run Code Online (Sandbox Code Playgroud)

如果您的课程和您用于项目的第三方库遵循这些标准,Symfony2自动加载器是您唯一需要的自动加载器.

我将要使用的课程,不满足其中一个要求.

因此,如果我不能自动加载该文件,因为不可能(我理解,但我可能会出错)使用require_once(或简单地require)namespace,这个问题的解决方案是什么?

Flo*_*ent 5

假设您有一个名为xmlrpc.lib.php以下内容的文件:

<?php 
class XMLRPC_Server {
    // ...
}

class XMLRPC_Request {
    // ...
}

class XMLRPC_Response {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

您可以创建一个MapClassLoader处理它的自动加载的实例:

// Create map autoloader
$mapLoader = new MapClassLoader(array(
    'XMLRPC_Server' => __DIR__.'/../library/xmlrpc.lib.php',
    'XMLRPC_Request' => __DIR__.'/../library/xmlrpc.lib.php',
    'XMLRPC_Response' => __DIR__.'/../library/xmlrpc.lib.php',
));

// Register autoloader
$mapLoader->register();
Run Code Online (Sandbox Code Playgroud)

当其中一个类被自动加载时,其他类也将自动加载,因为它们共享相同的PHP文件.