我正在使用 PhpStorm 版本 #PS-222.3345.135 的 Ubuntu 18.04 系统。我使用的是 PHP 7.4.20 和 Xdebug 2.9.8。
首先,当我没有在网络请求上运行 Xdebug 时,它们工作得很好。当我尝试使用 Xdebug 单步执行时,方法会过早退出,如下面的屏幕截图所示:
第一张截图:
执行在该launch()方法的第一行。因此,按“Step Over”按钮应将执行带到第 112 行。($this->_state->setAreaCode($areaCode));相反,按“Step Over”会提前退出该launch()方法并将执行线程带回该Bootstrap::run()方法,如下所示:
请注意,局部范围内没有$response变量run(),因为该launch()方法由于过早退出而不允许返回值。再次按 Step Over 将导致抛出异常$response->sendResponse(),如下图所示:
总而言之,这里的问题是 Xdebug 没有正确单步执行代码。这个问题直到上周才开始出现,并且我的项目路径映射与之前相同。
多个 PhpStorm 项目都发生这种情况,而不仅仅是这一个代码库。不过,我确实有一个 PhpStorm 项目(代码库要小得多),其中单步执行代码工作正常(结果我将 PhpStorm 内存限制升级到 2GB,但没有解决任何问题)。
有谁知道为什么会发生这种情况?
(我查过之前关于这种情况的帖子)
在下面的图片中,您可以看到来自同一文件“StripeController.php”的代码
两个类/模型(StripeEvent和Transaction)都扩展了 Model,具有
命名空间 App\Models,并使用:
使用 Illuminate\Database\Eloquent\Factories\HasFactory;
使用 Illuminate\Database\Eloquent\Model;
此行不存在于任何这些模型中(使用 Illuminate\Database\Eloquent\Builder)
两个类/模型中均不存在 DOC 块。
这里 PhpStorm 说在StripeEvent模型
上找不到“firstWhere”方法:
但是在交易模型 PhpStorm的上一行(在同一文件中)找到了这个方法:

我尝试创建其他新模型,但问题仍然存在。PhpStorm 仅识别旧/以前创建的模型的方法,但不识别新模型的方法。
我怀疑可能有一些配置或帮助程序缓存需要重新生成。
有什么想法如何修复它并使 PhpStorm 代码提示而不是在雄辩的方法下划线?
我从NetBeans迁移到PhpStorm.如何在PhpStorm中将多行复制和移动方法更改为NetBeans方法?(PhpStorm需要完整选择移动或出版的线路)
更新:考虑以下两行"
lin1 --------------
lin2 ++++++++++++++
Run Code Online (Sandbox Code Playgroud)
如果您完全选择两行并按下ctrl + d:在NetBeans中,您将获得:
lin1 --------------
lin2 ++++++++++++++
lin1 --------------
lin2 ++++++++++++++
Run Code Online (Sandbox Code Playgroud)
在PhpStorm你会得到:
lin1 --------------
lin2 ++++++++++++++lin1 --------------
lin2 ++++++++++++++
Run Code Online (Sandbox Code Playgroud)
现在考虑以下两行({} =选择界限)
lin1 ---------{-----
lin2 +++++++++}+++++
Run Code Online (Sandbox Code Playgroud)
如果您部分选择两行并按下ctrl + d:在NetBeans中,您将获得:
lin1 ---------{-----
lin2 +++++++++}+++++
lin1 ---------{-----
lin2 +++++++++}+++++
Run Code Online (Sandbox Code Playgroud)
在PhpStorm你会得到:
lin1 ---------{-----
lin2 +++++++++-----
lin2 +++++++++}+++++
Run Code Online (Sandbox Code Playgroud)
在NetBeans中,ctrl + e将删除多行,但ctrl + y不会在多行上执行操作.
在PHPStorm 3.0中,PHP字符串如:
$sString = '<div><span class="someClass">test</span></div>';
Run Code Online (Sandbox Code Playgroud)
具有HTML语法/开始和结束括号突出显示.
我想禁用此行为并仅将其显示为字符串.
有人想出我可以改变的地方吗?
我收到以下警告:
优化背景属性
此检查尝试查找类似的CSS属性,可以将其转换为更短的形式(简写;如果可能,可以将单个边的填充缩短为"填充"速记等).
在这一行CSS:
background: url('../icons/loading.gif') no-repeat right center;
Run Code Online (Sandbox Code Playgroud)
有没有办法知道PHPStorm要我用CSS声明做什么?
是否有一个特定的原因,PhpStorm以斜杠为前缀构造函数的返回类型?
class MyTest
{
/**
* Constructor
*
* @return \MyTest
**/
public function __construct(){}
}
Run Code Online (Sandbox Code Playgroud)
它在PHPDoc本身中有特殊含义吗?还是一些特定的IDE功能?
我通过将@deprecated添加到docBlock来弃用我的项目中的方法,期望PHPStorm在解决该特定方法时选择它.但是,我的 PHPStorm似乎忽略了该评论,并没有将该方法的用法标记为已弃用.
现在我知道不再允许使用这种方法,但我的一些同事可能不会.我只是检查了别人的电脑,他正在收到弃用警告,所以对每个人来说都不是问题.我不能保证这一点.
我使缓存无效,重新启动PHPStorm,删除并重新添加@deprecated,但似乎没有任何效果.
有没有人有建议?我缺少一个设置吗?
如何使用周围实时模板的缩写?(例如t,...)在非周围模板中键入缩写并按下tab会插入模板,但是我在周围模板中首先选择一部分代码并且我们不输入缩写.
如何为特定的周围模板定义快捷方式,例如,如何定义模板,以便在选择部分代码然后g按键时,所选代码被<?=_('和包围')?>?
我尝试在win 7上使用mocha和webstorm test runner.
我有这些配置参数:
节点的路径:
C:\Program Files (x86)\nodejs\node.exe
Run Code Online (Sandbox Code Playgroud)
工作目录:
D:\creation\software developer\projects\dev\document root\
Run Code Online (Sandbox Code Playgroud)
节点app js文件的路径:
C:\Users\inf3rno\node_modules\mocha\bin\_mocha
Run Code Online (Sandbox Code Playgroud)
应用参数:
test
Run Code Online (Sandbox Code Playgroud)我在webstorm控制台中收到以下错误消息
? 1 of 1 test failed:
Run Code Online (Sandbox Code Playgroud)
但没有关于哪个测试失败.:S
怎么解决?
(在git bash中我得到了一条详细的错误信息,所以mocha安装得很好)
与不同的记者共同尝试,但他们似乎都没有工作.我认为问题在于Error对象.其他一切都很好.
写了一个自定义记者,发现堆栈是否出现在webstorm控制台上是完全随机的.最好的选择是使用process.stderr.write打印它,使用console.log或process.stdout.write不显示任何内容.我不知道为什么会这样.也许这是某种类型的超时,但我将超时设置为9999999.:S:S:S嗯也许webstorm运行器有超时,这取决于它,而不是mocha超时设置......
经过本报记者的测试:
exports = module.exports = WebStorm;
/**
* Initialize a new `WebStorm` test reporter.
*
* @param {Runner} runner
* @api public
*/
//decribe -> suite
//it -> test
function WebStorm(runner) {
var buffer = [];
var suites = [];
var fails = [];
runner.on("suite", function(suite){
suites.push(suite.title || "''"); …Run Code Online (Sandbox Code Playgroud)