False positive when an entity's property gets changed by a form inside an if
还没有人认领这个 Issue。
评估
调研方向
Start with the PHP reproduction in the issue, focusing on the form creation and handleRequest calls inside the conditional. Reproduce the false-positive report and trace the analysis of the later $user->getOk() condition; done means the condition is no longer reported as always false after the form may change the entity.
由索引模型根据 Issue 内容生成。
描述
I guess the title doesn't really say it all ;-)
So let me show you what I have:
foreach($users as $user)
{
// If the user is not OK yet, generate the form to edit the user:
if (false === $user->getOk()) {
$form[$user->getId()] = $this->get('form.factory')->createNamed('form' . $user->getId(), UserType::class, $user);
$form[$user->getId()]->handleRequest($request);
if ($form[$user->getId()]->isSubmitted() and $form[$user->getId()]->isValid())
{
$entityManager->persist($user);
$entityManager->flush();
// Here phpstan reports "If condition is always false.", cause it obviously remembers the `if` from above
// and doesn't see that `$user->ok` could have been changed by the form meanwhile
if ($user->getOk()) {
$this->addFlash('success', 'User is now OK');
}
}
}
}
- 主要语言
- PHP
- 星标
- 805
- 派生
- 104
- 平均合并
- 27 分钟
- 30 天内合并 PR
- 3
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
phpstan/phpstan-symfony 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
phpstan/phpstan-symfony#510 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
phpstan/phpstan-symfony#494 · 5 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
phpstan/phpstan-symfony#268 ·
-
难度 5/5 一周以上 新手友好度 35/100
phpstan/phpstan-symfony#509 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 48/100
phpstan/phpstan-symfony#466 · 4 条评论 ·
查看 phpstan/phpstan-symfony 的全部 Issue
相似的 Issue
-
难度 1/5 1 小时以内 新手友好度 90/100
coollabsio/shoutrrr#190 ·
-
Bug Enhancement Performance
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Feature Status: Needs Triage
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
frontend low-priority
难度 2/5 1-3 小时 新手友好度 77/100
mplodowski/dynamicpdf-plugin#336 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
AdvancedCustomFields/acf#1044 ·