在Symfon欧宝娱乐app下载地址y 3.2:台中新改进(第1部分)
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
的控制台组件会收到很多新特性在Symfony 3.2中,大多与改善其DX(开发人员的经验欧宝娱乐app下载地址)。在本系列文章的第一篇中,我们引入了四个新特性。
读了第2部分和第3部分本系列文章的解释控制台组件在Symfony 3.2的新特性。欧宝娱乐app下载地址
命令别名不再显示为单独的命令
提供的
胡安·米格尔·罗德里格斯
在# 18790。
最佳实践建议定义名称空间命令来避免碰撞和改进应用程序的组织。然而,对于频繁执行的命令,这是方便定义快捷键:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
类VeryLongNameCommand扩展ContainerAwareCommand{受保护的函数配置(){美元这- >setName (应用:很长:名字的)- >setDescription (“Lorem Ipsum…”)/ /……- >setAliases ([“foo”]);}/ /……}
在上面的例子中,可以执行的命令/ bin /控制台应用程序:非常:长:名字
当/ bin /控制台foo
。虽然只是一个命令,Symfony将展示它作为两个单独的命令:欧宝娱乐app下载地址
1 2 3 4 5 6
美元/ bin /控制台可用命令:foo Lorem Ipsum……应用:应用:很长:名字Lorem Ipsum…
在Sy欧宝娱乐app下载地址mfony 3.2别名现在内联在原来的命令,减少杂乱的控制台输出:
1 2 3 4 5
美元/ bin /控制台可用命令:应用:应用:非常:长:名称(foo) Lorem Ipsum……
错误现在显示即使使用安静模式
提供的
奥拉夫Klischat
在# 18781。
如果你添加q
或——安静
选项在运行Symfony命令时,输出配置了欧宝娱乐app下载地址OutputInterface: VERBOSITY_QUIET
的水平。这使得命令不输出任何信息,甚至没有错误消息。
在Sy欧宝娱乐app下载地址mfony 3.2我们已经改善了q
和——安静
选择继续压制所有输出的日志消息除外日志:错误
的水平。这样你永远不会再次错过一条错误消息。
更好地支持一个命令的应用程序
提供的
格雷戈勒Pineau在# 16906。
构建一个单命令应用程序Sym欧宝娱乐app下载地址fony是可能的,但它需要你做些改变,不是通过不断命令名。在Sy欧宝娱乐app下载地址mfony 3.2我们已经改善了基础应用程序
类来支持单一命令开箱即用的应用。
首先,定义一个命令像往常一样和创建控制台应用程序。然后,设置唯一的命令作为默认命令并通过真正的
作为第二个参数setDefaultCommand ()
。将应用程序到一个命令的应用程序:
1 2 3 4 5 6 7 8 9 10 11
使用欧宝娱乐app下载地址\组件\控制台\应用程序;美元命令=新\ FooCommand ();美元应用程序=新应用程序();美元应用程序- >add (美元命令);/ /第二次布尔参数告诉如果这是一个方法的应用美元应用程序- >setDefaultCommand (美元命令- >getName (),真正的);/ /现在执行的FooCommand没有通过它的名称美元应用程序- >run ();
简单的命令测试
测试一个Symfon欧宝娱乐app下载地址y命令是不必要的复杂,它需要你深入PHP流。例如,如果您的测试需要模拟用户输入123年
,喷火
和酒吧
,你必须做到以下几点:
1 2 3 4 5 6 7 8 9 10 11 12 13
使用欧宝娱乐app下载地址\组件\控制台\测试人员\CommandTester;美元commandTester=新CommandTester (美元命令);美元助手=美元命令- >getHelper (“问题”);美元助手- >setInputStream (美元这- >getInputStream (“123 \ nfoo \ nbar \ n”));受保护的函数getInputStream(美元输入){美元流= fopen (“php: / /记忆”,' r + ',假);fputs (美元流,美元输入);倒带(美元流);返回美元流;}
在Sy欧宝娱乐app下载地址mfony 3.2我们简化命令测试通过添加一个新的setInputs ()
方法CommandTester
帮手。你只需要通过一个数组的内容用户类型:
1 2 3 4
使用欧宝娱乐app下载地址\组件\控制台\测试人员\CommandTester;美元commandTester=新CommandTester (美元命令);美元commandTester- >setInputs ([“123”,“foo”,“酒吧”]);
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。