VS Code Extensions
PHP Strom

PHP Strom

by AOSSoftware

High-performance, fully open-source PHP language intelligence for VS Code — a complete LSP implementation covering all features.

Downloads

87

Rating

— (0)

Version

0.1.29

Last updated

Aug 30, 2026

PHP Strom is a high-performance, fully open-source PHP language intelligence extension for VS Code.

It provides a complete PHP language experience with code completion, go to definition, hover, references, diagnostics, formatting, code actions, inlay hints, document links, type hierarchy, and more.

Why PHP Strom

  • Fully open source under MIT
  • Native bundled language server for macOS, Linux, and Windows in one VSIX
  • Fast workspace indexing and incremental updates
  • Rich PHP language features without a premium tier
  • PHPDoc-aware analysis and configurable diagnostics

Features

PHP Strom includes support for:

  • IntelliSense and symbol-aware completion
  • Signature help and hover information
  • Go to definition, declaration, type definition, and implementations
  • Find references and document highlights
  • Workspace symbols and document symbols
  • Diagnostics for undefined symbols, undefined variables, and type issues
  • Formatting with configurable brace style and indentation
  • Code actions, code lens, inlay hints, and folding
  • Document links and type hierarchy

A full feature specification is available in FEATURES.md.

Installation

Install from the VS Code Marketplace.

Development Build

make build-server, make build-server-local, and make test-server use the exact parser revision pinned in server/go.mod. They do not depend on a sibling checkout or a mutable clone of the parser repository.

For coordinated local development across both repositories, use make build-server-dev or make test-server-dev. These explicit development targets generate a temporary Go workspace using the sibling ../go-php-parser checkout.

Override the sibling path if needed:

make build-server-dev LOCAL_PHP_PARSER_DIR=/path/to/go-php-parser

Run the synthetic editor-path trace gate with:

make test-editor-latency

The gate launches fresh language-server processes for cold workspace indexing, then drives the real handler path through cached saves, body-only and dependency edits, debounce cancellation, stale-result rejection, and a collision-triggered full index fallback. It emits a machine-readable JSON report with end-to-end latencies and cache/index accounting. The fixture is synthetic; results are an absolute regression signal, not a claim about latency in a particular project.

Configuration

Important settings include:

  • phpstrom.enable
  • phpstrom.environment.phpVersion
  • phpstrom.environment.includePaths
  • phpstrom.environment.documentRoot
  • phpstrom.files.exclude
  • phpstrom.diagnostics.*
  • phpstrom.diagnostics.overrides
  • phpstrom.format.*
  • phpstrom.codeLens.*
  • phpstrom.inlayHints.*

See FEATURES.md for the full configuration reference.

phpstrom.diagnostics.overrides accepts rule-specific matchers. For example:

{
	"phpstrom.diagnostics.overrides": {
		"PSR1.Classes.ClassDeclaration.PascalCase": {
			"classes": ["/^Legacy_/", "SpecialClass"]
		}
	}
}

Matching classes are ignored by the scanner for that diagnostic code.

Cross-platform Packaging

The extension bundles platform-specific language server binaries for:

  • darwin-arm64
  • darwin-x64
  • linux-arm64
  • linux-x64
  • win32-arm64
  • win32-x64

This allows a single VSIX to work across supported macOS, Linux, and Windows environments.

Repository

Related extensions