我正在开发一个需要与第三方库集成的zf2项目。该库与php命名空间不兼容。
我发现很少有文章描述命名空间兼容库的集成。根据它们,如果库与命名空间兼容,那么我们可以通过在Module.php中添加一个映射来集成它,如下所示。
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
'MyLibrary' => __DIR__ .'/path/to/library',
),
),
我试过了,然后我必须为库中的每个文件设置名称空间,以便能够使用库。但修改别人的图书馆并不是一个好习惯。
所以,请帮我集成一个非命名空间兼容的php库和zf2
答案 0 :(得分:1)
我是这样做的:
在Module.php中,将一个ClassMapAutoloader添加到getAutoloaderConfig函数中。
public function getAutoloaderConfig() {
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
);
}
然后在同一级别创建一个autoload_classmap.php,其模块如下:
return array(
'MyClass' => __DIR__ . '/libs/MyClass.php',
);