我使用一些辅助函数来停止程序流并返回数据。例如,尽管大多数页面都是HTML,但我偶尔会返回JSON并调用
/**
* @param array|bool $response
*
* @die
*/
function jsonResponseDie($response)
{
header('Content-Type: application/json');
echo json_encode($response);
die();
}
但是,调用函数不会检测到存在die语句,并允许在其后出现代码而不会发出警告。
function recievePush()
{
// Process a push request and respond with a json array.
jsonResponseDie(array('status' => TRUE));
echo 'This will never execute but PhpStorm doesn\'t know that';
}
如何让PhpStorm检测到该功能将消失?
我确实尝试了一些项目“ @return die”或“ @die”,但似乎无法识别。我还查看了一些文档here,但发现没有任何用处。
答案 0 :(得分:3)
PHPDoc中没有针对此类内容的特殊标签。
PhpStorm对此还没有任何解决方案。
https://youtrack.jetbrains.com/issue/WI-10673-观看此票(星号/票/评论)以获取任何进展的通知。
答案 1 :(得分:0)
我有一个CodeIgniter 3.1.11项目,我想在我的SendJsonResponseAndDie()
文件中的myproject/ci/application/helpers/format_helper.php
方法上实现exitPoint。
对我来说,解决方案很简单,就是在meta
中创建一个myproject
目录,然后创建一个包含以下内容的.phpstorm.meta.php
文件:
myproject / meta / .phpstorm.meta.php :
<?php
namespace PHPSTORM_META {
function exitPoint($functionReference) {
return "exitPoint " . $functionReference;
}
exitPoint(\SendJsonResponseAndDie());
}
嘿,只要我将鼠标悬停在项目中任何位置的函数调用之后的代码上,就会出现“无法到达的语句”文本。
不过,我希望无法到达的代码行将变暗,这样我就可以直观地看到问题所在,而无需进行悬停事件。
@LazyOne的答案中未提及的其他一些阅读内容:https://github.com/JetBrains/phpstorm-stubs/blob/master/meta/.phpstorm.meta.php