gpt4 book ai didi

php - 使用 php exec() 响应 composer.phar 的问题

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:04 26 4
gpt4 key购买 nike

我相信标题有点含糊。但是我的英语不好,所以我缺少更好的。

我目前正在编写一个工具,该工具还可以从源代码执行 composer.phar。

因此,当使用 composer.phar 安装一些东西时,它有时会提出问题并需要额外的输入,例如所需的格式或简单的 Y/N 问题。

当我使用 exec() 时,似乎无法对这些问题使用react。

所以我想知道如何使用 PHP 实现这一点。

有什么想法吗?

更新为了展示一个简单的例子,我这​​样做了:

exec("php /Users/johannesklauss/Development/web/composer.phar create-project symfony/framework-standard-edition /Users/johannesklauss/Development/web/Symfony 2.1.x-dev");

这里的问题是 Composer 询问是否应该保留版本控制历史:

Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]?

所以我需要在控制台输入yn。但这对于 exec 是不可能的。所以我需要一些交互模式或什么。

最佳答案

请注意:寻找可以发送到初始命令以“自动应答”的标志。您无法真正保证 composer.phar 会问什么问题或问他们的顺序。它应该被认为是一个“hack”,我们大脑中的正常 react 应该适用于所有它的谨慎和上下文等......

无论如何,我想你需要的是proc_open() ,它让您启动一个进程并可以访问它的标准输入和标准输出。请参阅该文档页面上的示例 #1 代码,它非常接近您可能需要的内容。

一旦您有权访问该进程的标准输入/标准输出资源,您就可以随意读取/写入它们。好消息是,这将让您“阅读”提示并至少仔细检查它询问的是您期望它询问的内容(例如,如果您不认识提示,则抛出异常)

关于php - 使用 php exec() 响应 composer.phar 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com