我有一个文件(PHP的xmlrpc库),我想将它用于Symfony2类(所以在Symfony2项目中)。
我不能使用自动加载器,因为写成here
能够 [自动加载器] 从文件中加载类 实现以下约定之一:
1) The technical interoperability standards for PHP 5.3 namespaces and class names; 2) The PEAR naming convention for classes.
如果您的课程和第三方库用于您的项目 遵循这些标准,Symfony2自动加载器是唯一的自动加载器 你将永远需要。
我将要使用的课程,不满足其中一项要求。
因此,如果我无法自动加载该文件,那么因为require_once
(或简称require
)与{{1}一起使用是不可能的(因为我理解,但我可能会出错) },这个问题的解决方案是什么?
答案 0 :(得分:5)
假设您有一个名为xmlrpc.lib.php
的文件,其中包含以下内容:
<?php
class XMLRPC_Server {
// ...
}
class XMLRPC_Request {
// ...
}
class XMLRPC_Response {
// ...
}
您可以创建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();
当其中一个类被自动加载时,其他类也将自动加载,因为它们共享相同的PHP文件。