🧩 AddScript
向 composer.json 的 scripts 段添加一个脚本,可选地附带描述。
何时使用
需要在安装、更新、测试等生命周期钩子上自动执行命令时使用。Composer 脚本可以是单个命令字符串、PHP 回调,或命令数组。本方法只修改配置文件,注册后可用 composer run-script 触发。
签名
go
func (c *Composer) AddScript(name string, script interface{}, description string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
name | string | 脚本名称,例如 post-install-cmd 或自定义名 test |
script | interface{} | 脚本内容,可以是 string、[]string 或 PHP 回调字符串 |
description | string | 脚本描述,可选;非空时写入 scripts-descriptions 段 |
返回值
error:读取或写入composer.json失败时返回错误。
示例
go
package main
import (
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatal(err)
}
// 添加单命令脚本(安装后执行)
if err := comp.AddScript(
"post-install-cmd",
"php -r \"echo 'Installation completed!';\"",
"安装后执行",
); err != nil {
log.Fatal(err)
}
// 添加多命令脚本
commands := []string{
"php -r \"echo 'Starting tests...';\"",
"phpunit",
}
if err := comp.AddScript("test", commands, "运行测试"); err != nil {
log.Fatal(err)
}
}进阶
- 🔄 内部流程:
ReadComposerJSON→ 写Scripts[name]→ 可选写ScriptsDescriptions[name]→WriteComposerJSON。 - ⚠️ 若同名脚本已存在会覆盖。
- 🏃 注册后实际运行脚本见
RunScript/ExecuteScript;列出脚本见ListScripts。 - 🗑️ 对应的移除方法见
RemoveScript。