簡體   English   中英

使用Drupal Libraries模塊加載PHP庫並使用類

[英]Loading PHP Libraries and Using Classes using Drupal Libraries module

為了加載PHPGoogleMaps庫,我試圖使用Drupal庫模塊來解決問題 我已經設法創建配置並將庫加載到模塊中。 我想我的主要問題是現在使用庫類。 我敢肯定,現在我需要使用另一種方式打電話或使用它們。 我以前的非drupal代碼具有以下效果:

require( 'resources/PHPGoogleMaps/Core/Autoloader.php' );
$map_loader = new SplClassLoader('PHPGoogleMaps', 'resources/');
$map_loader->register();
$map = new \PHPGoogleMaps\Map;
$address = '...';
$geocode = \PHPGoogleMaps\Service\Geocoder::geocode($address);

現在在Drupal中使用Libraries API,我不確定在加載庫后從哪里開始,因為在嘗試以下代碼時我仍然遇到類未找到錯誤:

libraries_load('PHPGoogleMaps');
$map = new \PHPGoogleMaps\Map;
//Fatal error: Class 'PHPGoogleMaps\Map' 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 ['library path'] url解析此路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM