Skip to content

Commit aa9c6b1

Browse files
committed
Update roadmap
1 parent 53d7967 commit aa9c6b1

2 files changed

Lines changed: 0 additions & 29 deletions

File tree

docs/todo.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ within the same impact tier.
2525
| --- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | ------ |
2626
| B6 | [Scope methods not found on Builder in analyzer chains](todo/bugs.md#b6-scope-methods-not-found-on-builder-in-analyzer-chains) | High | Medium |
2727
| B7 | [PHPDoc `@param` generic array type not merged with native `array` hint](todo/bugs.md#b7-phpdoc-param-generic-array-type-not-merged-with-native-array-hint) | Low | Medium |
28-
| B9 | [Eloquent relationship property lookup is case-sensitive](todo/bugs.md#b9-eloquent-relationship-property-lookup-is-case-sensitive) | Low | Low |
2928
| H10 | [`return.unusedType` — remove unused type from return union](todo/phpstan-actions.md#h10-returnunusedtype--remove-unused-type-from-return-union) | Medium | Medium |
3029
| H6 | `return.type` — update return type to match actual returns | Medium | Medium |
3130
| | **Release 0.7.0** | | |

docs/todo/bugs.md

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -70,33 +70,5 @@ native `array` with the docblock's `list<Request>`.
7070
**Impact:** 1 diagnostic in the shared project
7171
(`MobilePayConnection:76`).
7272

73-
## B9: Eloquent relationship property lookup is case-sensitive
74-
75-
Laravel normalises property names via `Str::snake()` at runtime, so
76-
`$order->orderProducts` and `$order->orderproducts` both resolve to the
77-
same relationship. PHPantom's property lookup is case-sensitive, so when
78-
code uses `orderProducts` (camelCase) but the model declares the
79-
relationship method and `@property` as `orderproducts` (all lowercase),
80-
the property is not found.
81-
82-
Real-world example — `FlowService.php`:
83-
84-
```php
85-
// FlowService line 477:
86-
$items = $order->orderProducts->map(...);
87-
// ^^^^^^^^^^^^^^ camelCase — not found
88-
89-
// Order model declares:
90-
public function orderproducts(): HasMany { ... }
91-
// and @property uses 'orderproducts' (lowercase)
92-
```
93-
94-
The fix should apply `Str::snake()`-equivalent normalisation (or
95-
case-insensitive matching) when looking up relationship-derived virtual
96-
properties on Eloquent models.
97-
98-
**Impact:** 1 direct diagnostic (`FlowService:477`) plus 1 cascading
99-
(`FlowService:517` — compound with `Collection::reduce()` type loss).
100-
10173

10274

0 commit comments

Comments
 (0)