我有一个本地设置,用于在 3 台不同的 Windows 10 PC 上在 Symfony 5.0 上进行开发,当 PHP 版本为 7.3 时它们都没有问题,而当它是 7.4 时它们都有同样的问题。
它发生在任何需要用户输入的执行上,例如: * php bin/console make:entity
* php bin/console doctrine:migrations:migrate
。
其他php bin/console make:migration
不需要用户输入的命令可以正常工作,所以看起来等待输入是问题所在。
在非交互模式下运行它们适用于是/否,但对于很多人来说是不可能的,比如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\7.3
并C:\php\7.4
切换它们,我只需更改 Windows 环境变量中的 PATH 即可。php -v
如果我重新打开终端,则会生成正确的版本。
在 MacOS 上运行的团队成员对 7.4 没有问题,Ubuntu 18.04 登台服务器也没有问题,所以它一定是我的 Windows 安装所特有的。