Skip to content
CAI
Software that uses CAICheck a score

doctrine/event-manager

63.7

Adequate · 19 September 2026

231

lines of production code

PHP

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a PHP library that provides a structured event management system, featuring interfaces for dispatching, introspection, and listener registration. It replaces legacy Doctrine 1.x code with a modern implementation requiring PHP 8.1 and includes comprehensive unit tests for its core functionality.

Features

Introduce new event system interfaces and implementation

The library now provides a structured event system consisting of new interfaces (EventDispatcher, EventListenerIntrospector, EventListenerRegistry, EventSubscriberRegistry, EventManagerInterface) and a concrete EventManager implementation, along with an EventArgs base class. This allows users to type-hint against specific capabilities (dispatching, introspection, registration) and register listeners or subscribers via the new API.

src · high confidence

Removals

Obsolete Doctrine 1.x manual code samples removed

The manual/codes directory has been cleared of all PHP code examples that demonstrated the legacy Doctrine 1.x API (including classes like Doctrine\_Manager, Doctrine\_Session, Doctrine\_Record, and Doctrine\_Collection). These files are now deleted, meaning the manual no longer provides copy-pasteable code snippets for these outdated components.

manual/codes · high confidence

Behavioural changes

License changed to MIT and event listener API made stricter

The project license has been updated from LGPL to MIT. Additionally, the Event Manager's API behavior has changed: calling \EventManager::getListeners()\ now requires an event name argument, and a new \getAllListeners()\ method has been introduced to retrieve listeners for all events, ensuring more explicit event handling.

(repo-wide) · high confidence

Test coverage

Added unit tests for EventManager

Added a new test suite for the EventManager class, covering listener and subscriber registration, event dispatching, and removal of listeners and subscribers.

tests · high confidence

Dependencies

Doctrine Event Manager requires PHP 8.1 and updates development dependencies

The Doctrine Event Manager library now requires PHP 8.1 or higher, dropping support for older PHP versions. Development tooling has been updated to use PHPUnit 10.5.58, PHPStan 2.1.32, and Doctrine Coding Standard 14. Additionally, the project now includes a separate composer.json for documentation building, requiring the doctrine/docs-builder package.

(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 64.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 52
  • Readiness 73
  • Security 77

Changes since last survey

  • 300 commits — 274 feature/other, 26 fixes

By area

  • (repo) — 141 commits
  • (root) — 55 commits
  • .github/workflows — 40 commits
  • tests/Doctrine — 24 commits
  • lib/Doctrine — 23 commits
  • lib/vendor — 6 commits
  • docs/en — 4 commits
  • src/EventManager.php — 3 commits
  • .github/dependabot.yml — 2 commits
  • .github/FUNDING.yml — 1 commit
  • src/EventDispatcher.php — 1 commit

Notable commits

  • fix: Apply automatic CS fixes
  • fix: Apply manual CS fixes
  • fix: Fix Doctrine Common Version
  • fix: Fix Next version
  • fix: Fix Testsuite to work with Git
  • fix: Fix Testsuite to work with Git
  • fix: Fix homepage link
  • fix: Fix non-static assertion call
  • fix: Fix return type docblock for dispatchEvent
  • fix: Fixed Error due to merging tests/Doctrine/Tests/TestInit.php file
  • fix: Fixed UnitOfWork and isRollbackOnly flag.
  • fix: Fixed documentation.
  • fix: Fixed testsuite after CLI refactorings, Removed Symfony YAML Autoloader Hack
  • fix: Merge branch 'hotfix/#384-correct-directory-to-namespace-conversion-in-file-locators'
  • fix: Merge pull request #11 from Majkl578/fix-homepage
  • fix: Merge pull request #206 from Slamdunk/hotfix/debug-export-arrayiterator
  • fix: Merge pull request #216 from Ocramius/hotfix/silent-autoloaders
  • fix: Merge pull request #792 from ostrolucky/fix-139
  • fix: Merge pull request #802 from ostrolucky/fix-386
  • fix: Revert "Reverted - part 2."
  • …and 280 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

doctrine/event-manager 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 10dcde34de6e8c8b8e9bdcd0d43d6de533c38241 — 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.