All checks were successful
CI / Coding Standards (push) Successful in 43s
CI / PHPStan (push) Successful in 52s
CI / Tests (PHP 8.1) (push) Successful in 47s
CI / Tests (PHP 8.2) (push) Successful in 49s
CI / Tests (PHP 8.3) (push) Successful in 37s
CI / No Debug Code (push) Successful in 2s
All classes are now organised by domain (Availability, Booking, Auth). Each domain package contains its value object, repository, admin controller, REST endpoint, and any shortcode pages under a matching sub-namespace. Cross-cutting wiring (Plugin, AdminMenu, RestRegistrar, ShortcodeRegistrar, Schema) lives at src/ root. Tests mirror the domain structure. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
name, description, type
| name | description | type |
|---|---|---|
| Package-by-domain architecture | New features must be organised as domain packages, not by type (no Admin/, Api/, Data/ etc.) | feedback |
Always organise code package-by-domain, not package-by-type.
Why: User explicitly requested the restructure on 2026-03-30. Package-by-type (Admin/, Api/, Data/, Frontend/, Model/, Roles/) was the initial scaffold but was replaced before any real features shipped.
How to apply:
- New domain → new directory under
src/<Domain>/(e.g.src/Availability/,src/Booking/,src/Auth/) - All classes for a domain (value objects, repositories, admin controllers, REST endpoints, shortcode pages) live inside that directory under the sub-namespace
Unsupervised\Schedular\<Domain>\ - Cross-cutting wiring that glues domains together (Plugin, AdminMenu, RestRegistrar, ShortcodeRegistrar, Schema) lives at
src/root with namespaceUnsupervised\Schedular\ - Tests mirror the domain structure:
tests/Unit/<Domain>/ - Never create
src/Admin/,src/Api/,src/Data/,src/Frontend/,src/Model/, orsrc/Roles/directories