Édition PHP
Complétion lexicale et ouverture d’un éditeur externe.
Technical reference synchronized with Yard’s source. File names and development commands refer to the native app repository.
Keep lexical completion for the current quick-edit workflow and expose the established external editor action for deeper work. Project-wide symbols, typed members and navigation are useful potential improvements, but they are a separate semantic-service feature. No LSP, editor library or project indexer is introduced by this assessment.
Herd documents PHP completion without specifying its semantic engine, indexing or navigation depth. Herd.app is unavailable here; its behavior for all cases below remains unverified. Herd Studio code tool.
Editing matrix
StudioEditorAssessmentTests.testActualCompletionBehaviorMatrix executes the actual bundled
PHP_WORDS/autocomplete/acceptance block in WKWebView. The lightweight host supplies only the DOM
and unrelated save/gutter callbacks; it does not reimplement completion. Source inspection of the
complete Studio client and file/search routes distinguishes lexical suggestions from project indexing.
| Editing case | Observed Yard result | Scope of evidence | Herd runtime |
|---|---|---|---|
PHP keyword fun |
Suggests function. |
Actual completion block executed. | Unverified |
Current-file $invoiceTotal, prefix $invo |
Suggests the visible word. | Actual completion block executed. | Unverified |
Unopened project class ProjectOnlyInvoice |
Not available from new ProjectOnlyInv. |
Executed block has no project index; file/search code reviewed for alternate completion sources. | Unverified |
Current-file calculateTotal, $invoice->cal |
Suggests the lexical word; object type is not resolved. | Actual block executed. | Unverified |
Unknown object $unknown->whe |
Suggests hardcoded where without any declared type. |
Actual block executed; demonstrates dictionary behavior. | Unverified |
Import Illuminate\Ht |
Suggests the predefined Illuminate\Http\Request. |
Actual block executed. | Unverified |
Project import App\Domain\Mon |
No project-aware import or automatic use edit. |
Actual block executed plus acceptance code reviewed. | Unverified |
Method/function signature array_map( |
No parameter/signature popup. | Actual block executed. | Unverified |
| Multi-file navigation | File tree/text search can open a chosen path/line. There is no definition/reference resolver or corresponding editor key binding/API. | Source inspection, not a full browser navigation experiment. | Unverified |
For a short change next to a live preview, keyword/current-file suggestions plus search are sufficient. A multi-file domain-model refactor benefits from project symbols, parameter help and go-to-definition; those capabilities should not be promised by the current suggestions. Matching the spelling of a member in one file does not prove semantic completion.
Optional scoped semantic-service prototype
Phpactor is a candidate for a separately authorized local prototype: upstream documents completion, signature help, workspace symbols and declaration navigation. Its manifest currently requires PHP 8.2 or later plus mbstring/posix/tokenizer. It is MIT licensed; transitive notices and the exact release artifact still need a pinned distribution review. Phpactor capabilities, runtime manifest, license.
Bound the prototype to PHP completion, signature help and go-to-definition. It would need a client adapter for the current editor (or an explicitly chosen editor replacement), a managed PHP runtime for the server, an opt-in worker per canonical project root and explicit supported PHP-language versions. Do not install Composer dependencies into the user's project or depend on Homebrew.
Indexing and document synchronization read project source, including unsaved buffers. Keep index and
logs local in a private Yard directory; exclude .env, credentials, generated output and unneeded
vendor trees by default, explain exclusions, and do not send source to provider models. Audit the
selected server's configuration/plugins before promising it cannot execute project-supplied code.
Index ownership must follow canonical worktrees and task leases, with cancellation and idle cleanup
when Studio is disabled or the workspace changes.
No language server was installed or benchmarked. Memory, first-index time, vendor indexing and cross-project interference are not measured. A follow-up must measure cold/warm startup and peak/idle RSS against a small multi-file project and a representative disposable Laravel dependency tree, establish budgets, and prove completion while offline before choosing distribution size or concurrency limits. Completing this investigation does not imply implementation of that prototype.
Executed validation
The actual-completion WebKit matrix passed in /tmp/yard-hd005-018-final-tests.log (2026-11-08),
with all eight executed completion categories asserted and no skips. Multi-file navigation remains
a source-inspection observation; no semantic service or competitor runtime was tested.