You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Phase 5 walks PSR-4 roots from `composer.json` (`autoload` and `autoload-dev`). Since PSR-4 mappings are sourced exclusively from the project's own `composer.json` (vendor PSR-4 is not loaded), Phase 5 inherently only discovers classes in the user's own source directories (e.g. `src/`, `app/`, `tests/`). Vendor dependencies are fully covered by the classmap (Phase 3).
646
646
647
-
Phase 5 exists to catch newly-created or not-yet-indexed user classes that are missing from the classmap (e.g. the user hasn't run `composer dump-autoload -o`).
647
+
Phase 5 exists to catch newly-created or not-yet-indexed user classes that are missing from the classmap.
648
648
649
649
Note: `collect_php_files` still receives the vendor dir name because a fallback mapping like `"" => "."` resolves to the workspace root, where the walk must skip the vendor directory (and hidden directories like `.git`).
Copy file name to clipboardExpand all lines: docs/SETUP.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,9 +26,6 @@ cargo build --release
26
26
27
27
PHPantom works with any PHP project. It reads `composer.json` when present to discover autoload directories and vendor packages, and falls back to scanning the workspace when not present.
28
28
29
-
> [!TIP]
30
-
> Running `composer dump-autoload -o` is optional but gives PHPantom a pre-built classmap, making startup almost instant.
31
-
32
29
## Configuration
33
30
34
31
PHPantom supports an optional per-project configuration file for settings like PHP version overrides and diagnostic toggles.
| 106 | Diagnostics fire on type alias array shape object values | Low | Bug Fixes |[bugs.md §1](todo/bugs.md#1-diagnostics-fire-on-type-alias-array-shape-object-values)|
49
+
| 107 | Inline array-element function calls resolve to native return type in diagnostics | Low | Bug Fixes |[bugs.md §2](todo/bugs.md#2-inline-array-element-function-calls-resolve-to-native-return-type-in-diagnostics)|
50
+
| 108 | Flaky `unknown_member` diagnostic on Eloquent Builder scope chains | Medium | Bug Fixes |[bugs.md §3](todo/bugs.md#3-flaky-unknown_member-diagnostic-on-eloquent-builder-scope-chains)|
**After Sprint 4:** PHPantom covers every commonly expected LSP feature
77
-
and surpasses the field on type intelligence, generics, Laravel, and
78
-
performance. No feature gaps remain for typical day-to-day editing.
140
+
**After Sprint 5:** PHPantom is ready for office colleagues. They
141
+
get formatting, PHPDoc generation, inlay hints, and the diagnostics
142
+
they're used to. Nobody switching from Intelephense (free or
143
+
premium) feels like they lost more than they gained.
79
144
80
145
---
81
146
82
-
## Sprint 5 — Type intelligence depth & polish
147
+
## Sprint 6 — Type intelligence depth
83
148
84
149
Type intelligence depth is PHPantom's defining advantage. This sprint
85
-
deepens that lead and rounds out the remaining feature surface.
150
+
deepens that lead with features that benefit the PHPStan enthusiast
151
+
and Laravel developer alike. File system watching eliminates the
152
+
"restart the server after composer update" friction.
86
153
87
154
| # | Item | Effort | Domain | Doc Link |
88
155
|---|---|---|---|---|
@@ -92,27 +159,32 @@ deepens that lead and rounds out the remaining feature surface.
92
159
| 29 | Conditional return types `($param is T ? A : B)`| Medium | Type Inference |[type-inference.md §3](todo/type-inference.md#3-parse-and-resolve-param-is-t--a--b-return-types)|
93
160
| 30 |`@param-closure-this`| Medium | Type Inference |[type-inference.md §15](todo/type-inference.md#15-param-closure-this)|
94
161
| 31 |`key-of<T>` and `value-of<T>` resolution | Medium | Type Inference |[type-inference.md §16](todo/type-inference.md#16-key-oft-and-value-oft-resolution)|
95
-
| 32 | Code Lens: jump to prototype method | Low | LSP Features |[lsp-features.md §8](todo/lsp-features.md#8-code-lens-jump-to-prototype-method)|
| 36 | Warn when composer.json is missing or classmap not optimized | Medium | Diagnostics |[diagnostics.md §9](todo/diagnostics.md#9-warn-when-composerjson-is-missing-or-classmap-is-not-optimized)|
99
162
| 37 | File system watching for vendor and project changes | Medium | Type Inference |[type-inference.md §5](todo/type-inference.md#5-file-system-watching-for-vendor-and-project-changes)|
100
163
| 38 | Property hooks (PHP 8.4) | Medium | Type Inference |[type-inference.md §6](todo/type-inference.md#6-property-hooks-php-84)|
101
-
| 39 | Simplify with null coalescing / null-safe operator (code action) | Medium | Code Actions |[actions.md §2](todo/actions.md#2-simplify-with-null-coalescing--null-safe-operator)|
102
-
| 40 | Inlay hints (`textDocument/inlayHint`) | Medium | LSP Features |[lsp-features.md §9](todo/lsp-features.md#9-inlay-hints-textdocumentinlayhint)|
| 39 | Simplify with null coalescing / null-safe operator (code action) | Medium | Code Actions |[actions.md §2](todo/actions.md#2-simplify-with-null-coalescing--null-safe-operator)|
112
184
113
185
---
114
186
115
-
## Sprint 6 — Deep type accuracy & Laravel excellence
187
+
## Sprint 8 — Deep type accuracy & Laravel excellence
116
188
117
189
These items push type resolution accuracy beyond what any tool offers.
118
190
They're the long tail that makes PHPantom the definitive choice for
@@ -131,7 +203,7 @@ projects that care about types.
131
203
| 52 |`class_alias()` support | Medium | Completion |[completion.md §8](todo/completion.md#8-class_alias-support)|
132
204
| 53 | Attribute constructor signature help | Medium | Signature Help |[signature-help.md §4](todo/signature-help.md#4-attribute-constructor-signature-help)|
133
205
| 54 | Closure/arrow function parameter signature help | Medium | Signature Help |[signature-help.md §5](todo/signature-help.md#5-closure--arrow-function-parameter-signature-help)|
| 56 | Partial result streaming via `$/progress`| Medium-High | LSP Features |[lsp-features.md §6](todo/lsp-features.md#6-partial-result-streaming-via-progress)|
136
208
137
209
**Note:** Item 51 (Type Hierarchy) depends on the go-to-implementation
@@ -142,7 +214,7 @@ addresses the complementary inbound direction.
142
214
143
215
---
144
216
145
-
## Sprint 7 — Blade support
217
+
## Sprint 9 — Blade support
146
218
147
219
Blade is a multi-phase project tracked in [todo/blade.md](todo/blade.md).
148
220
Shipping Blade support makes PHPantom the first open-source PHP language
@@ -192,7 +264,7 @@ eventually but don't move the needle.
192
264
|---|---|---|---|---|
193
265
| 72 | Switch → match conversion | Medium | Code Actions |[actions.md §4](todo/actions.md#4-switch--match-conversion)|
194
266
| 89 | Incremental text sync | Medium | Performance |[performance.md §8](todo/performance.md#8-incremental-text-sync)|
0 commit comments