gpt4 book ai didi

phpstorm - 我如何声明一个函数死亡,以便 PhpStorm 检测到它?

转载 作者:行者123 更新时间:2023-12-04 01:52:21 24 4
gpt4 key购买 nike

背景

我使用了几个辅助函数来停止程序流并返回数据。例如,虽然大多数页面是 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但发现没有任何用处。

最佳答案

PHPDoc 中没有针对此类内容的特殊标记。 PhpStorm 也没有任何解决方案。
https://youtrack.jetbrains.com/issue/WI-10673 - 观看这张票(明星/投票/评论)以获取有关任何进展的通知。

更新 2020-10-20:
上述票has been implemented 起此类功能现已可用PhpStorm 2020.1.x 版本。
它是使用 实现的高级元数据功能 (通过仅为 IDE 眼睛创建单独的类似 PHP 的文件):https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html#define-exit-points

<?php

namespace PHPSTORM_META {
exitPoint(\App\PageFlow::exitApplication());
}
另一个例子:结果, terminate()调用 bar提供的参数将作为一个退出点(另一个值不会触发它)。因此,run 方法的最后一行将被视为无法访问:
exitPoint(Application::terminate('bar'));
enter image description here

附注从 PhpStorm 2020.3(将在今年 12 月左右的某个时间发布)并使用 PHP Language Level = 8.0,您将能够使用 PHP 8 样式属性 #[NoReturn]就在您的代码中,而不是单独的高级元数据文件(请参阅 WI-55531 (actual/original implementation)WI-56103 (new attribute name) 票证)。

关于phpstorm - 我如何声明一个函数死亡,以便 PhpStorm 检测到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52412606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com