# PHP Analyzer Owner Manifest **Decision ID:** OWNER-SCANNER-PHP-001 **Status:** ASSIGNED **Effective Date:** 2025-12-06 ## Assignment The **PHP Language Analyzer** component is owned by the **Scanner Guild** for implementation purposes. ## Rationale 1. PHP analyzer follows the same patterns as existing language analyzers (Bun, Node, Python) 2. Scanner Guild owns all language analyzers under `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.*` 3. PHP ecosystem knowledge exists within the Scanner Guild 4. Composer lockfile parsing is well-documented with existing test fixtures ## Scope The Scanner Guild is responsible for: - `StellaOps.Scanner.Analyzers.Lang.Php` library implementation - Composer lockfile (`composer.lock`) parsing - PHP package version resolution - Integration with Scanner engine via `ILanguageAnalyzer` interface - Test fixtures under `src/Scanner/__Tests/...Php.Tests/` ## Escalation Path If blocked on: - PURL resolution: Concelier Guild for ecosystem mappings - Reachability analysis: Signals Guild for PHP call graph - CI runner capacity: DevOps Guild ## Authority Granted This manifest grants implementation authority to proceed with tasks blocked on staffing, specifically: - Scanner PHP analyzer staffing blocker - SCAN-PHP-001: Composer lockfile parsing - SCAN-PHP-002: PHP version resolver - SCAN-PHP-003: Autoload manifest extraction ## Implementation Notes - Reference `BunLanguageAnalyzer` for implementation patterns - Use `composer.lock` JSON schema from Packagist documentation - PURL namespace: `pkg:composer/vendor/package@version` - Handle platform requirements (`php`, `ext-*`) separately ## Priority - **Phase 1:** Composer lockfile parsing (MVP) - **Phase 2:** Autoload analysis for reachability - **Phase 3:** Framework-specific patterns (Laravel, Symfony)