记录有意切换失败的最佳方法是啥?
Posted
技术标签:
【中文标题】记录有意切换失败的最佳方法是啥?【英文标题】:What's the best way to document intentional switch fall-through?记录有意切换失败的最佳方法是什么? 【发布时间】:2013-06-30 23:45:07 【问题描述】:我发现自己处于一种情况,即最好选择开关盒。我的意思是:
switch($bar)
case 0:
// do something
case 1:
// do more
break;
//more cases
目前我的 IDE (phpStorm) 正在发出有关失败的警告。
phpDoc 中是否有一种可接受的方式来记录这种预期的失败?
n.b.我知道你们中的一些人无疑会说不要这样做,但我订阅了这个definition of evil,这肯定是“替代品中最不坏的”。
【问题讨论】:
我总是将// Deliberate fallthrough
放在冒号右侧的注释中,尽管这更多是为了程序员的缘故。我认为您不能禁用 IDE 的警告
消除警告的唯一方法是配置 phpstorm 打印的警告,在这种情况下删除掉线警告。但这并不是很有效,因为也许在另一个脚本中您只是忘记了中断,因此警告将是有用的。我通过忽略警告来处理它,并可能添加额外的评论或与之类似的东西,以明确这是故意写的。
@GordonM 我已经这样做了,但只是想知道是否有更正式的方式来记录这种行为。
正如其他评论者所说,唯一的方法是关闭警告(我对 PHPStorm 不是很熟悉,所以我会相信他们的话)。鉴于您不小心跌倒的情况可能比您被警告故意跌倒的情况严重得多,并且考虑到故意跌倒不是您应该经常做的事情,我只会忍受警告。
没有用于指示此类行为的 phpDocumentor 标记。
【参考方案1】:
虽然问题明确询问了 phpDoc,但这里有一个针对 PHPStorm 的特定于 IDE 的解决方案。
对于 javascript,请评论
//noinspection FallthroughInSwitchStatementJS
在 switch 语句之上。
对于 PHP,请评论
/** @noinspection PhpMissingBreakStatementInspection */
在有问题的案例陈述之上。
【讨论】:
可爱!这正是我所希望的。谢谢。 在 PHPStorm 中(也可能在其他 JetBrains IDE 中),您也可以按下 Alt+Enter 并将光标悬停在有问题的代码上,然后选择“Suppress for statement”。然后,禁用检查的相应注释将自动插入到正确的位置。 这确实有帮助,但如果 PhpDoc 可以有一个像 @fallthrough 这样的标签,那就太好了 :) 也许 PHP-Fig 的东西 @donquixote PhpDocumentor 团队表示他们打算坚持生成外部文档所需的最少标签。 虽然一些类/方法标签有待讨论,但他们肯定会不支持在函数内部添加标签。 这个解决方案对于 PHPStorm 用户来说听起来可行,但它并不完全符合 PSR 标准。他们在那里要求发表评论// no break
或类似的东西......我希望Storm 能够抓住这一点,而不是要求我在我的代码中添加一个丑陋的私人@noinspection
标志:/以上是关于记录有意切换失败的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 中,更新记录或创建新记录(如果不存在)的最佳方法是啥?
用 YARD 记录“splatted”参数的最佳方法是啥? [关闭]
使用 Thymeleaf 在 Spring Boot 中记录 Activity 的最佳方法是啥?
如果路径已知,检查 Firestore 记录是不是存在的最佳方法是啥?