Skip to content
CAI
Software that uses CAICheck a score

josecelano/ddd-symfony-sample

50.6

Adequate · 20 September 2026

1.9k

lines of production code

PHP

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Symfony-based application scaffold focused on user management, specifically handling user registration and profile viewing through a web interface. It implements a command and event-driven architecture using SimpleBus, with support for asynchronous message processing via a Stomp queue. The codebase currently provides the foundational structure for user domain logic, including registration commands, post-registration events, and basic infrastructure wiring, but lacks complete implementation for features like email notifications.

Features

Asynchronous message bus with Stomp support

The application now supports asynchronous handling of commands and events via a new AsynchronousBusBundle. This introduces separate command and event buses that can route messages through a Stomp message queue instead of handling them synchronously. Developers can mark events with the IsHandledAsynchronously marker interface to have them published to the queue, and a new console command (matthias:asyn-bus:asyn-event-subscriber) is provided to consume and process these queued events. The infrastructure includes middleware for both buses, a StompMessageQueue implementation, and a Symfony serializer bridge to handle message serialization.

src/Matthias/Common · high confidence

Initial Symfony application scaffold with asynchronous messaging support

The application is initialized with a standard Symfony structure, including the AppKernel, AppCache, and console entry points. A key addition is the integration of the AsynchronousBusBundle, which introduces separate command and event buses for handling asynchronous messages over a message queue, alongside the existing SimpleBus Symfony bridge. The kernel is configured to register core bundles such as Doctrine, Security, Twig, Monolog, and Swiftmailer, along with infrastructure bundles for user management and common utilities.

app · high confidence

Initial event handling for user registration

This change introduces the foundational event-driven structure for the user registration flow. It adds a \UserWasRegisteredEvent\ to capture the new user's ID and a \SendNotificationMailAfterUserWasRegistered\ subscriber to handle post-registration tasks. Currently, the subscriber is a placeholder with the email sending logic commented out, awaiting implementation of the \UserMailer\ and \UserRepository\ dependencies.

src/Matthias/User/App/Event · high confidence

Initial release of Symfony Standard Edition with User domain scaffolding

This commit introduces the initial structure of a Symfony application, including the standard web front controllers (app.php, app\_dev.php), Apache configuration (.htaccess), and base Twig templates. It also scaffolds a new User domain within the Matthias namespace, defining a User entity, a UserRepository interface, and a corresponding Symfony bundle (MatthiasUserDomainInfrastructureUserBundle) with its routing and service configuration.

(repo-wide) · high confidence

Initial user registration and profile web interface

This change introduces the web presentation layer for user management within the Matthias User module. It adds a Symfony bundle that provides a registration form (handling username and password submission via a command bus) and a profile view. Users can now access signup at /signup, submit registration at /register, and view their profile at /profile. The implementation includes the necessary controller, form type, routing configuration, and Twig templates to render these pages.

src/Matthias/User/Presentation · high confidence

Initial user registration command and handler implementation

Added the RegisterUserCommand and its corresponding handler to the application layer. The handler processes user registration requests by recording a UserWasRegisteredEvent and an IsHandleAsynchronouslySampleEvent via the RecordsMessages interface, establishing the foundational structure for the user registration feature.

src/Matthias/User/App/Command · high confidence

New User Bundle for Command and Event Handling

A new Symfony bundle, MatthiasUserAppInfrastructureUserBundle, has been introduced to manage user-related infrastructure. This bundle registers a command handler for the RegisterUserCommand and an event subscriber that triggers a notification mail when a UserWasRegisteredEvent occurs, effectively wiring the application's command and event bus logic for user registration.

src/Matthias/User/App/Infrastructure · high confidence

Behavioural changes

Initial application configuration and root URL redirection

This change introduces the core configuration files for the Symfony application, including environment-specific settings for development, production, and testing, as well as database, mailer, and security parameters. A key behavioral addition is the routing configuration that automatically redirects visitors from the site root (/) to the user signup page (/user/signup). The security setup currently uses in-memory user providers with plaintext password encoding for demonstration purposes.

app/config · high confidence

Dependencies

Initial project setup with Symfony 2.3 and SimpleBus integration

The project is initialized with a new composer.json and composer.lock file, establishing the dependency baseline. This includes the Symfony Standard Edition (version 2.3), Doctrine ORM and bundles, Twig extensions, and several Sensio bundles. Notably, it integrates the SimpleBus Symfony bridge (dev-master) for command bus functionality, along with the Symfony serializer and FuseSource STOMP PHP client for messaging.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 54 → 51 (-3.9)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 99 (-1.4)
  • Architecture 100 → 78 (-22.1)
  • Maturity 63 → 67 (+4.1)
  • Readiness 24 → 29 (+4.2)
  • Security 100 → 89 (-11.0)
  • Accessibility 63 (new)

Resolved (9)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — no supported dependency manifest was read
  • No exposed public API
  • Test reliability not included
  • The 'What I want to test?' section lists command/event bus features but does not explain how commands reach the event bus or where validation belongs. (README.md)
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient
  • git history depth insufficient
  • single-maintainer — knowledge-concentration (bus factor) risk

New (23)

  • Abandoned package: fusesource/stomp-php
  • Abandoned package: sensio/distribution-bundle
  • Abandoned package: sensio/framework-extra-bundle
  • Abandoned package: sensio/generator-bundle
  • Abandoned package: symfony/assetic-bundle
  • Abandoned package: symfony/swiftmailer-bundle
  • Abandoned package: twig/extensions
  • Critical CVE: [GHSA redacted] (composer.lock)
  • Critical CVE: [GHSA redacted] (composer.lock)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (5 lines × 4) (src/Matthias/Common/App/Infrastructure/CommonBundle/DependencyInjection/MatthiasCommonAppInfrastructureCommonExtension.php)
  • Duplicated block (8 lines × 2) (src/Matthias/Common/App/Infrastructure/AsynchronousBusBundle/DependencyInjection/CommandBusExtension.php)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • High CVE: [GHSA redacted] (composer.lock)
  • Medium: security finding (details withheld)
  • Outdated: incenteev/composer-parameter-handler
  • TodoComment (src/Matthias/Common/App/Event/IsHandleAsynchronouslySampleEventHandler.php)
  • …and 3 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

josecelano/ddd-symfony-sample 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 20 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 cc7047695e25155ccbcd4fc894d6d37835cabd18 — 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-28e75b8e3254.