我正在尝试使用Drupal Libraries模块来加载PHPGoogleMaps库。我已经按照自己的方式创建了配置并将库加载到我的模块中。我想我的主要问题现在开始使用库类。我敢肯定,我现在需要一种不同的方式调用或使用它们。我以前的非drupal代码是这样的:
require( 'resources/PHPGoogleMaps/Core/Autoloader.php' );
$map_loader = new SplClassLoader('PHPGoogleMaps', 'resources/');
$map_loader->register();
$map = new PHPGoogleMapsMap;
$address = '...';
$geocode = PHPGoogleMapsServiceGeocoder::geocode($address);
现在,在使用库 API 的 Drupal 中,我不确定加载库后从哪里开始,因为我在尝试以下代码时仍然遇到类未发现错误:
libraries_load('PHPGoogleMaps');
$map = new PHPGoogleMapsMap;
//Fatal error: Class 'PHPGoogleMapsMap' not found
我应该注意,在使用 libraries_detect() 进行检查并打印出返回的libraries_load信息时,库已正确加载并提取正确的信息
在我的库定义中,我不确定我是否需要在此处添加不仅仅是自动加载器文件
$libraries['PHPGoogleMaps'] = array(
'name' => 'PHPGoogleMaps',
'vendor url' => 'https://github.com/galen/PHPGoogleMaps',
'download url' => 'https://github.com/galen/PHPGoogleMaps',
'version arguments' => array(
'file' => 'version.txt',
'pattern' => '/Version (d+)/',
'lines' => 1,
),
'files' => array(
'php' => array(
'Core/Autoloader.php',
),
),
);
啊,对于任何试图解决这个问题的人来说,我仍然需要 SplClassLoader 信息(我仍然对使用它很陌生)
$library = libraries_load('PHPGoogleMaps');
$map_loader = new SplClassLoader('PHPGoogleMaps','sites/all/libraries');
$map_loader->register();
我暂时将手动路径放入,尽管我相信从 $library['库路径'] url 解析它会更好