Skip to content

v0.8.0 — PHP parity with Go

Choose a tag to compare

@garyblankenship garyblankenship released this 19 Apr 00:46
· 188 commits to main since this release

PHP parity with Go

PHP files now render at the same fidelity as Go: full signatures with visibility, types, and defaults; class headers with extends / implements; properties and constants visible; PHPDoc first sentences inlined.

What's new

  • Tree-sitter PHP parser replacing the regex fallback. Covers PHP 8.x: classes, interfaces, traits, enums (with backings and cases), functions, methods, properties, constants, namespaces.
  • Visibility-in-signature — public function foo(): string, private readonly LoggerInterface $logger.
  • Constructor property promotion extracted as real properties — byte-identical signatures to non-promoted declarations.
  • PHPDoc extraction — first sentence rendered as subtitle; @-tags stripped. No [doc: n/a] noise on PHP files.
  • Kind-weighted ordering — class/interface first, then trait, enum, function, method, case, property, const.

Before / after

On LLPhant's src/Chat/OpenAIChat.php:

# v0.7.0
src/Chat/OpenAIChat.php [untested] [doc: n/a]
  func __construct
  func generateText
  type OpenAIChat

# v0.8.0
src/Chat/OpenAIChat.php [untested]
  class OpenAIChat implements ChatInterface [440L]
  public function __construct(OpenAIConfig $config = new OpenAIConfig(), private readonly LoggerInterface $logger = new NullLogger())
  public function generateText(string $prompt): string
  public ?FunctionInfo $lastFunctionCalled = null

Symbol count on the same 149-file LLPhant codebase: 968 → 1398 (+44%) within the same 2048-token budget.

Verified

444 tests passing, build/vet clean.

Install: go install github.com/dotcommander/repomap/cmd/repomap@v0.8.0