使用 Composer 扩展 Drupal 10.

Learn DrupalAan de slag
如今,社区贡献的 Drupal 模块依赖第三方库是很常见的情况,其中一些模块只能用 Composer 安装。如果您已经用 Composer 获取了 Drupal 核心,或者某个模块要求使用 Composer,那么您应该用 Composer 下载所有的模块和主题。如果您将 Composer 更新与其他方式混用,可能会遇到相当棘手的更新问题。
 

使用 Composer 获取社区贡献的模块和主题

想用 Composer 下载社区贡献的 Drupal 模块或主题吗?方法如下:

  • 输入 composer require drupal/module_name
  • 例如:composer require drupal/token
  • 请确保您位于 Drupal 安装的根目录

随后 Composer 会更新您的 composer.json,将该模块加入其他依赖的列表,如下所示:

{
    "require": {
        "drupal/token": "^1.5"
    }
} 

Composer 会下载该模块及其可能有的所有依赖。

接下来,要启用 Drupal 模块,您有两个选择:

  • 使用标准的 Drupal 网页界面,点击工具栏中的“扩展”。
  • 试用 Drush 或 Drupal Console 等命令行工具,参见从命令行安装模块.

在 require 模块时,既可以使用项目名称,也可以使用项目中的具体模块名称:

  • Composer 会下载包含该模块的整个项目。
  • 例如,如果您需要 features_extra 项目中的 fe_block 模块,可以任选以下两种方式:
    • composer require drupal/features_extra
    • composer require drupal/fe_block
 

选择版本

如果您希望指定要下载的模块或主题的版本,请这样做:

composer require 'drupal/module_name:version'

(只需将version替换为实际的 Composer 版本或版本约束。)

例如:

composer require 'drupal/dxpr_builder:^1.1' 
composer require 'drupal/dxpr_builder:~1.1' 
composer require 'drupal/dxpr_builder:2.2.2-alpha2' 
composer require 'drupal/dxpr_builder:2.2.x-dev' 

为避免在不同的终端或 Shell 中出现问题,请像上面的示例一样,将版本用引号括起来。


注意!在 Windows 上,使用(单)引号可能会破坏版本声明,导致安装失败并提示'Could not parse version constraint .....': Invalid version string "....'".

不加引号,例如:

composer require drupal/dxpr_builder:^2.2

或者使用double quotes代替单引号,如下所示:

composer require "drupal/dxpr_builder:^2.2"

这样应该可以正常工作。更多信息,参见评论“Composer 问题:无法解析版本约束”.


在上面的示例中,版本对应关系如下:

  • ^1.1:对应模块最新的稳定 10.x-1.x 版本。
  • ~1.1:对应模块最新的稳定 10.x-3.x 版本。
  • 2.2.2-alpha2:对应 2.2.2-alpha2 版本
  • 2.2.x-dev:对应 2.2.x-dev

关于 ~(波浪线)和 ^(脱字符)的版本约束的更多内容,请查看后续重要版本运算符.

建议您指定要下载的社区贡献模块的版本。


使用 Composer 搜索

好消息!Drupal.org 的 Composer 端点支持Composer 搜索功能,即您可以直接从命令行搜索 Drupal 项目。要使用 Composer 搜索,请输入:

composer search views
 

使用 Composer 浏览

Drupal.org 面向 Drupal 7 到 10 的 Composer 端点同样支持Composer 浏览功能,您可以直接从命令行查找 Drupal 项目的更多信息。要使用 Composer 浏览,请输入:

composer browse drupal/token