Wannabe-Pro / composer-release-plugin
Composer 包发布构建工具
Requires
- php: >=5.6
- composer-plugin-api: ^2.1
- composer-runtime-api: ^2.1
- ext-zip: *
Requires (Dev)
README
Composer 插件,允许生成和更新包的构建。
安装后,此插件将在 composer 配置的 "extra" 部分中查找 "build-plugin" ("build-plugin" 用于 "-dev" 模式) 键。此键的值是一组配置插件的选项。
配置值是构建目标名称的列表。对于每个指定的名称
- "builder" - 构建类名称,它是构建配置的必需属性;
- "composer" - 特定构建的 composer 包 json,这可以是一个包中的文件名或 infile-fragment;
- "map" - 构建目标中文件映射的规则集。
插件会复制 composer 安装和更新操作,以在虚拟路径上使用特定的 composer 包构建的阴影副本。然后,插件在虚拟路径中映射文件,并通过名称提供给指定的构建器。
{
"require": {
"wanna-be-pro/composer-release": "*"
},
"extra": {
"build-plugin": {
"ProductionBuildTargetName": {
"builder": "SpecificBuilderName",
"composer": "SpecificComposerPackage",
"mapper": "SpecificFilesMapRules"
}
},
"build-plugin-dev": {
"DevelopmentBuildTargetName": {
"builder": "SpecificBuilderName",
"composer": "SpecificComposerJson",
"mapper": "SpecificFilesMapRules"
}
}
}
}
映射规则检查源文件的相对路径,并为其应用模板名称。如果未设置或为 false,则从发布中排除文件。默认情况下,模板名称与源等效,并且所有文件都将被排除,除非另有说明。
{
"/^README.md/": true,
"/(.*)\\.php$/": "$1.inc",
"/(^|\\/)\\./": false
}
此包预设了一个名为 copy 的构建器,用于简单复制文件。所有构建器都将扩展 WannaBePro\Composer\Plugin\Release\Builder,并在 composer-plugin 中通过 WannaBePro\Composer\Plugin\Release\Plugin::addBuilder($name, $builder) 注册。
映射允许外部规则文件操作目标。将映射键设置为数值,将映射值设置为源文件名。此规则文件接受 TargetIterator 作为 $iterator 变量。您可以将新目标的迭代器附加到构建器上,作为 $iterator->getInnerIterator()->append()。使用 FiltredFile 作为项目以禁用此文件的另一个过滤规则。
映射规则允许配置对象设置流选项。
{
"/^.*\\.php$/": {
"result": "/cp1251/$0",
"config": {
"context": {
"proxy": "tcp://squid.example.com:8000"
},
"filters": ["convert.iconv.utf-8.cp1251"]
}
}
}
默认情况下,context 和 filters 的配置应用于构建源流。