繁体   English   中英

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

[英]Can I programmatically trigger “composer update” using the Composer API?

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

composer.json

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

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

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

有人知道API中的位置吗?

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

答案就在我眼前。 我要做的只是在调用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM