我目前正在制作一个Drupal模块,我想知道是否有任何机制让我指定一个github存储库,在安装时,我的模块将获得一些依赖于它的代码
重要提示:我依赖的不仅仅是Drupal模块,而只是一个代码库。所以,除非它支持检查github repos,否则我认为我的dependencies
文件中的info
会有所帮助吗?
答案 0 :(得分:1)
在Drupal 7中,它们不是管理外部依赖关系的官方方法。
但是没有(真的)阻止你使用像bower和composer这样的包管理器。
对于作曲家来说,他们是两个贡献项目:
对于Drupal 8,可以使用composer将依赖项添加到Drupal项目中。查看文档:{{3}}
答案 1 :(得分:0)
大多数项目似乎都清楚地列出了项目页面,安装说明和README文件的外部库依赖项。如果用户尚未安装所需的库,许多人使用库API来包含依赖项并显示配置警告。 Ckeditor,colorbox和JSON2都可以作为例子。
更新
不,库模块不下载依赖项。它只是提供一个安装位置和在模块中包含和使用的方法。请参阅“库项目”页面
安装库模块。在sites / all / libraries安装外部依赖。
首先,使用hook_libraries_info()注册库。
/**
* Implements hook_libraries_info().
*/
function mymodule_libraries_info() {
$libraries['anet_php_sdk'] = array(
'name' => 'Authorize.net PHP SDK',
'vendor url' => 'https://developer.authorize.net/',
'download url' => 'http://developer.authorize.net/downloads/',
'version arguments' => array(
'file' => 'README',
'pattern' => '/Version (\d+)/',
'lines' => 206,
'version' => '1.1.8'
),
'files' => array(
'php' => array('AuthorizeNet.php'),
),
);
return $libraries;
}
然后在模块中包含依赖项。
/**
* Assemble and send DPM payment request to Authorize.net.
*/
function mymodule_process_payment($reservation) {
// Include/require the dependency using libraries_load().
$library = libraries_load('anet_php_sdk');
// Use the external dependency...
}
访问libraries项目页面以获取更多文档,包括要求特定版本和处理检查和通知的示例。