mile23 / drupal-merge-plugin
Drupal贡献项目的依赖项发现。
Requires
- php: >=5.5
- composer-plugin-api: ~1.0
- wikimedia/composer-merge-plugin: ~1.3
Requires (Dev)
- composer/composer: 1.0.*@dev
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2019-12-17 01:48:29 UTC
README
注意:此项目处于开发中。目前甚至没有发布。想要帮忙?试试使用它。提交问题。运行测试。编写测试。谢谢。:-)
此插件目前正在考虑用于 drupalci_testbot
。想要参与这个决策?请在这里讨论:https://www.drupal.org/node/2597778
什么?
drupal-merge-plugin
是一个 Composer 插件,允许 Drupal 扩展指定自己的基于 Composer 的依赖项,而无需额外的基础设施。这包括 Drupal 模块、主题和配置文件。
此插件是 plugin_manager
模块概念的演变,使用 Drupal 扩展发现来合并基于 Composer 的依赖项。
它基于维基媒体项目的 composer-merge-plugin
,并继承了该项目的一些行为。
您可以在以下位置阅读维基媒体 composer-merge-plugin
的文档: https://github.com/wikimedia/composer-merge-plugin
为什么?
将 packagist.drupal-composer.org
添加到您的 composer.json
文件中就足以帮助它找到 Drupal 扩展,并安装它们以及它们的依赖项。
但是,如果您需要更新或重新安装(没有锁定文件),那么这还不够来管理这些依赖项。
有了这个插件,就可以做到这一点。
一旦您开始使用此插件,它将在您的 Drupal 项目文件系统中搜索 composer.json
文件,然后尝试满足它们。如果无法满足(由于版本约束等),Composer 将会通知您。
请注意,插件不关心给定扩展是否启用。它将满足 Drupal 文件系统中的所有扩展,无论扩展的启用状态如何。
如何?
在命令行中,键入以下内容
$ composer require mile23/drupal-merge-plugin
这会将插件添加到您的 Drupal 项目中。
为了使用 Composer 获取 Drupal 扩展,您必须将特殊的 Drupal Packagist 克隆添加到您的 repositories
部分。有关说明,请参阅: https://www.drupal.org/node/2718229
基本上,将类似以下的仓库添加到您的 composer.json
文件中
"repositories": {
"drupal": {
"type": "composer",
"url": "https://packages.drupal.org/8"
}
}
然后您可以添加 Drupal 扩展
$ composer require drupal/your-module-here
您可以将命令行脚本添加到您的 composer.json
文件中,如下所示
"scripts": {
"list-extensions": "Mile23\\DrupalMerge\\Script::listExtensions",
"list-managed-extensions": "Mile23\\DrupalMerge\\Script::listManagedExtensions",
"list-unmanaged-extensions": "Mile23\\DrupalMerge\\Script::listUnmanagedExtensions",
},
完成之后,您可以通过它们的 Composer 状态列出可用的模块
composer list-extensions
会列出所有可发现的具有composer.json
文件的 Drupal 扩展。composer list-managed-extensions
会列出当前 Composer 包中requires
部分的 Drupal 扩展。重申一下:如果扩展在您的composer.json
文件中,它就会出现在这个列表中。composer list-unmanaged-extensions
会列出具有composer.json
文件的扩展,但未列在当前项目的依赖项中。这些可能是作为 tar 包下载的扩展。
我的贡献模块的 composer.json
文件应该如何看起来?
Drupal 扩展不应指定它们依赖于此插件。只有项目级别的 composer.json
文件应使用此插件。
此插件的行为可能与 Drupal 社区构建的其他 Composer 解决方案冲突。
您可以为每个扩展提供一个 composer.json
文件,在任何由正常 Drupal 模块发现支持的文件夹深度。
您的 composer.json
文件必须与扩展的 .info.yml
文件位于同一目录。
您的 composer.json
文件应通过在命令行中运行 composer validate
的测试。
如果您的 composer.json
文件未指定 requires
和/或 requires-dev
,则此插件可能对您非常有用。
drupal-merge-plugin
将使用与 wikimedia/composer-merge-plugin
相同的合并规则。也就是说,将合并 requires
和 requires-dev
,以及 composer.json
的其他部分。有关更多信息,请参阅 composer-merge-plugin
文档。
您不应为您的扩展使用 Composer 的 autoload
功能。Drupal 会根据需要自动加载模块。
drupal-merge-plugin
使用与 composer-installers
相同的项目类型命名约定。这意味着您的模块的 type
字段应为 drupal-module
。这允许 composer-installer
插件将您的模块放置在正确的目录中,并允许 drupal-merge-plugin
发现它。