我可以使用Composer API以编程方式触发“作曲家更新”吗?

时间:2018-10-31 19:25:01

标签: php composer-php

我有一个运行的作曲家脚本,该脚本在类上调用静态方法。我的课对composer.json文件做了一些改动,然后使用Composer API中的Composer\Json\JsonFile类重写它:

composer.json

{
  ...
  "scripts": {
    "my-script": "MyScriptObject::doSomething"
  }
} 

我的问题是,如何使用Composer API从composer update类内部触发MyScriptObject我不想使用pre-update-cmd ,因为我无法将参数传递给它。

在查看API文档时,我看到有一个Composer\Installer类可以用来做类似的事情:Composer\Installer::create(IOInterface $io, Composer $composer)->run(),但是它执行安装并从锁定文件中加载依赖项。我想执行更新,以便重新生成锁定文件。

有人知道API中的位置吗?

来源:https://getcomposer.org/apidoc/master/index.html

1 个答案:

答案 0 :(得分:0)

答案就在我眼前。我要做的只是在调用run之前setUpdate()

Composer\Installer::create($this->io, $this->composer)->setUpdate(true)->run();

来源:https://github.com/composer/composer/blob/1.0.0-alpha3/src/Composer/Installer.php#L489