Symfony Doctrine ORM CLI字体/颜色无法正常工作?

6
我一直在网上寻找如何解决这个问题,但都没有成功。实际上我已经忽视了这个问题超过一年了。现在我在Symfony 4.1项目中使用更多的Doctrine ORM,希望有人知道如何修复Windows 10机器上的字体/颜色?

命令行工具: * Powershell - 无法正确显示颜色 * 命令提示符 - 无法正确显示颜色 * Git CMD - 无法正确显示颜色

当我创建或编辑实体时,我的CLI看起来是这样的:

E:\wamp\www\GasCruiter>php bin/console make:entity



 Class name of the entity to create or update (e.g. GentleChef):
 > UserConfirmation
U[K7[30;47mser[39;49m8s[K7[30;47mer[39;49m8e[K7[30;47mr[39;49m8r[K78C[K7[30;47monfirmation[39;49m8o[K7[30;47mnfirmation[39;49m8n[K7[30;47mfirmation[39;49m8f[K7[30;47mirmation[39;49m8i[K7[30;47mrmation[39;49m8r[K7[30;47mmation[39;49m8m[K7[30;47mation[39;49m8a[K7[30;47mtion[39;49m8t[K7[30;47mion[39;49m8i[K7[30;47mon[39;49m8o[K7[30;47mn[39;49m8n[K78

 Your entity already exists! So let's add some new fields!

 [32mNew property name (press [39m[32m<return>[39m[32m to stop adding fields)[39m:
 > date

 [32mField type (enter [39m[33m?[39m[32m to see all types)[39m [[33mstring[39m]:
 > datetime
d[K7[30;47matetime[39;49m8a[K7[30;47mtetime[39;49m8t[K7[30;47metime[39;49m8e[K7[30;47mtime[39;49m8t[K7[30;47mime[39;49m8i[K7[30;47mme[39;49m8m[K7[30;47me[39;49m8e[K78

 [32mCan this field be null in the database (nullable) (yes/no)[39m [[33mno[39m]:
 > no

 [32mupdated[39m: src/Entity/UserConfirmation.php

 [32mAdd another property? Enter the property name (or press [39m[32m<return>[39m[32m to stop adding fields)[39m:
 >


 [37;42m          [39;49m
 [37;42m Success! [39;49m
 [37;42m          [39;49m

 Next: When you're ready, create a migration with [33mmake:migration[39m

我可能缺少某种系统字体?不太确定如何修复此问题。


1
这些是ANSI转义码,我猜Windows的终端太愚蠢了,无法理解它们,或者可能只是没有正确配置。我没有直接使用过Symfony,但是你需要寻找一些方法来在帮助中禁用它们。例如,在Composer中,有一个--no-ansi选项。 - miken32
1个回答

6

无论是Powershell还是CMD终端/控制台仿真器都不支持ANSI转义码来设置颜色。

这就是为什么你看到这些ANSI转义码。你的终端只是不知道如何解释它们。

虽然我个人已经有一段时间没有使用Windows了,但我记得我对ConEmu有很好的体验。它提供了颜色支持和其他不错的功能。

如果你想快速开始,可以尝试使用cmder - 它是一个预先配置好的控制台仿真器,内置了漂亮的配色方案并基于ConEmu构建。

另一个获得带有颜色支持的控制台仿真器的快速选项是下载CygWin,它在Windows上为你提供了一个POSIX兼容的环境,可以使用其中包含的xterm端口。

任何基于 symfony/console 的工具都可以接受 --no-ansi 标志来抑制 ANSII 转义代码的输出。

无颜色输出示例:

 bin/console --no-ansi make:entity
 composer --no-ansi install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接