新在Symfo欧宝娱乐app下载地址ny 4.3:更好的控制台自动完成
2019年4月10日·发表的哈维尔Eguiluz
警告:这篇文章是关于一个不受支持的Symfony的版本。欧宝娱乐app下载地址其中一些信息可能是过时了。阅读最近的Symfony文档欧宝娱乐app下载地址。
的控制台组件提供了一个实用程序来自动完成与创建的问题的答案问题的助手。这是用于自动完成类和实体的例子MakerBundle提高你的生产率。
然而,自动完成需要事先知道所有可能的建议。这是不可能的,如果建议取决于用户输入和不实际,如果完成是高度动态的内容(例如,当自动完成目录)。
在Sy欧宝娱乐app下载地址mfony 4.3我们改善这个特性的新方法setAutocompleterCallback ()
允许使用一个回调函数来生成动态地自动完成建议。举个例子,这个例子展示了如何用有效目录自动完成用户输入内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
使用欧宝娱乐app下载地址\组件\控制台\问题\问题;/ /……公共函数执行(InputInterface美元输入,OutputInterface美元输出){/ /这个函数被调用时输入和新变化/ /建议是必要的。美元回调=函数(字符串美元userInput):数组{/ /去最后一个斜杠中的任何字符的字符串的结束/ /只保留最后一个目录和生成的建议美元inputPath= preg_replace (' % (/ | ^)[^ /]* $ % ',“1美元”,美元userInput);美元inputPath=”= = =美元inputPath吗?“。”:美元inputPath;/ /谨慎——这个示例代码允许无限制的访问/ /整个文件系统。在真实的应用程序中,限制的目录/ /文件和dirs可以找到的地方美元foundFilesAndDirs= @scandir (美元inputPath)?:[];返回到函数(美元dirOrFile)使用(美元inputPath){返回美元inputPath。美元dirOrFile;},美元foundFilesAndDirs);};美元问题=新问题(“请提供文件的完整路径解析”);美元问题- >setAutocompleterCallback (美元回调);美元filePath=美元助手- >问(美元输入,美元输出,美元问题);}
发表在#生活在边缘
评论
巴普蒂斯特Clavie
说在4月10日,2019年在16:08
这很有趣,但它似乎可调用*必须*返回一个数组,而不能返回一个生成器/屈服值。
我可能读错了,但是是很棒的支持这样一个可调用的国际海事组织的发电机。
否则,它很好。:}
我可能读错了,但是是很棒的支持这样一个可调用的国际海事组织的发电机。
否则,它很好。:}
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
Guillaume Loulier is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now也许这可能是一个好主意使它可用于配置生成(在构建外部包或专用配置)通过提供一个自动完成可用的钥匙吗?