Skip to content
CAI
Software that uses CAICheck a score

phpDocumentor/ReflectionCommon

59.6

Adequate · 19 September 2026

219

lines of production code

PHP

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is the foundational library for the phpDocumentor Reflection project, providing core interfaces and value objects for parsing PHP code. It establishes the essential data structures, such as Fully Qualified Structural Element Names (Fqsen) and source locations, along with factory patterns for converting file inputs into project objects. The repository is configured with comprehensive tooling for static analysis, code style checking, and unit testing to ensure reliability across PHP 7.4 and 8.0 environments.

Features

Initial project scaffolding with standardized QA and build tooling

The repository has been initialized with a comprehensive set of configuration files to establish a standardized development and quality assurance workflow. This includes a Makefile for orchestrating tasks such as code style checks (PHP\_CodeSniffer), static analysis (PHPStan, Psalm), and testing (PHPUnit), alongside specific configuration files for each tool (phpcs.xml.dist, phpstan.neon, psalm.xml, phpunit.xml.dist). Additional configurations include PHAR management via Phive (phive.xml), PHP Mess Detector rules (phpmd.xml.dist), YAML linting (.yamllint.yaml), and updated .gitignore and .gitattributes files to manage version control artifacts and export-ignores.

(repo-wide) · high confidence

Initial release of phpDocumentor Reflection library core interfaces and value objects

This change introduces the foundational components of the phpDocumentor Reflection library, establishing the core data structures and factory patterns used for parsing PHP code. It adds value objects for Fully Qualified Structural Element Names (Fqsen) and source code locations (Location), alongside interfaces defining the contract for API elements (Element), file inputs (File), and project outputs (Project). Additionally, it provides the ProjectFactory interface, which standardizes how sets of files are converted into project objects, enabling consistent parsing workflows across different implementations.

src · high confidence

Test coverage

Added unit tests for Fqsen parsing and formatting

Added a new test suite for the Fqsen class that validates correct parsing of fully qualified structural element names (including namespaces, functions, constants, classes, interfaces, traits, methods, and properties) and ensures invalid formats throw exceptions. The tests also verify the string representation of Fqsen instances.

tests · high confidence

Dependencies

Initial project setup with PHP 7.4/8.0 support and dev tooling

This change introduces the initial composer configuration for the phpdocumentor/reflection-common library, establishing support for PHP 7.4 and 8.0. It sets up the development environment by including PHPUnit 9.5, PHPStan 1.8, and Psalm 4.25 as dev dependencies, and configures a platform override to ensure consistent static analysis against PHP 7.4.1.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 60.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 48
  • Readiness 61
  • Security 87

Changes since last survey

  • 182 commits — 171 feature/other, 11 fixes

By area

  • (root) — 85 commits
  • (repo) — 54 commits
  • .github/workflows — 18 commits
  • src/Fqsen.php — 8 commits
  • src/Element.php — 5 commits
  • src/ProjectFactory.php — 5 commits
  • src/File.php — 2 commits
  • src/Project.php — 2 commits
  • .github/dependabot.yml — 1 commit
  • src/Location.php — 1 commit
  • tests/unit — 1 commit

Notable commits

  • fix: CS: various fixes
  • fix: Defensive coding fix
  • fix: Revert "update PHP versions on appveyor"
  • fix: Revert previous change based on discussion
  • fix: code style fixes
  • fix: ecs fixes
  • fix: fix docblock error
  • fix: fix name of coveralls phar
  • fix: fix phive coveralls
  • fix: fix phpunit phar download
  • fix: phpstan fix
  • change: .gitignore: ignore PHPUnit cache file
  • change: Add Location
  • change: Add composer cache
  • change: Add gitattributes file
  • change: Add github workflow
  • change: Add hyphen in package name
  • change: Add php 8 to build matrix
  • change: Add yaml lint config
  • change: Added missing require block
  • …and 162 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

phpDocumentor/ReflectionCommon was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit ee15a5a2022c8383906b225055e9496a6a5e6e3b — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.