为什么 PHP 7.4 on Windows 中止所有需要用户输入的命令行操作?
Why does PHP 7.4 on Windows aborts all command line actions that require user input?
我有一个本地设置,用于在 3 台不同的 Windows 10 台电脑上使用 Symfony 5.0 进行开发,当 PHP 版本为 7.3 时,它们都没有问题,而且它们都有相同的当它是 7.4 时出现问题。
它发生在任何需要用户输入的执行上,例如:
* php bin/console make:entity
* php bin/console doctrine:migrations:migrate
.
像 php bin/console make:migration
这样不需要用户输入的其他命令工作正常,所以似乎等待输入是问题所在。
运行 它们在非交互模式下适用于 yes/no 那些,但对于很多人来说是不可能的,比如 make:entity
这是终端的输出:
PS C:\path\project> php bin/console make:entity
Class name of the entity to create or update (e.g. VictoriousPuppy):
>
Aborted.
make:entity [-a|--api-resource] [--regenerate] [--overwrite] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<name>]
PS C:\path\project>
中止立即发生,无需等待输入。我同时安装了 7.3 和 7.4 版本,切换到 7.3 后可以正常工作,所以我查看了两个 php.ini
文件,没有发现任何错误。我直接从 php.net 站点 https://www.php.net/downloads.php
上的 Windows 下载链接安装了它们
我的 PHP 版本安装在 C:\php.3
和 C:\php.4
中,要切换它们,我只需更改 windows 环境变量中的 PATH。 php -v
如果我重新打开终端会生成正确的版本。
团队成员 运行 在 MacOS 上使用 7.4 没有问题,Ubuntu 18.04 暂存服务器也没有问题,所以它一定是我的 Windows 安装所特有的东西。
我有一个本地设置,用于在 3 台不同的 Windows 10 台电脑上使用 Symfony 5.0 进行开发,当 PHP 版本为 7.3 时,它们都没有问题,而且它们都有相同的当它是 7.4 时出现问题。
它发生在任何需要用户输入的执行上,例如:
* php bin/console make:entity
* php bin/console doctrine:migrations:migrate
.
像 php bin/console make:migration
这样不需要用户输入的其他命令工作正常,所以似乎等待输入是问题所在。
运行 它们在非交互模式下适用于 yes/no 那些,但对于很多人来说是不可能的,比如 make:entity
这是终端的输出:
PS C:\path\project> php bin/console make:entity
Class name of the entity to create or update (e.g. VictoriousPuppy):
>
Aborted.
make:entity [-a|--api-resource] [--regenerate] [--overwrite] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<name>]
PS C:\path\project>
中止立即发生,无需等待输入。我同时安装了 7.3 和 7.4 版本,切换到 7.3 后可以正常工作,所以我查看了两个 php.ini
文件,没有发现任何错误。我直接从 php.net 站点 https://www.php.net/downloads.php
我的 PHP 版本安装在 C:\php.3
和 C:\php.4
中,要切换它们,我只需更改 windows 环境变量中的 PATH。 php -v
如果我重新打开终端会生成正确的版本。
团队成员 运行 在 MacOS 上使用 7.4 没有问题,Ubuntu 18.04 暂存服务器也没有问题,所以它一定是我的 Windows 安装所特有的东西。