|
1 | 1 | # Class structure |
2 | 2 |
|
3 | | -All production classes are located in `src/`, and all unit and integration |
4 | | -tests are located in `tests/`. |
5 | | - |
| 3 | +All production classes live under `src/`, and all unit/integration tests live under `tests/`. |
6 | 4 |
|
7 | 5 | ## Core/ |
| 6 | +Core runtime and DI wiring. |
| 7 | +- Bootstrap: entry point that bootstraps the phpList core system and configures the application. |
| 8 | +- ApplicationKernel, ApplicationStructure: Symfony kernel and structure configuration. |
| 9 | +- Compiler passes (e.g., BounceProcessorPass, DoctrineMappingPass), environment helpers, parameter providers. |
8 | 10 |
|
9 | | -### Bootstrap |
10 | | - |
11 | | -This class bootstraps the phpList core system. |
| 11 | +## Bounce/ |
| 12 | +Bounce processing feature. (This module continuously updates the database throughout the bounce-processing workflow; therefore, it is separated into its own feature block.) |
| 13 | +- Command/: Console commands related to processing bounces. |
| 14 | +- Service/: Services that parse, classify and handle bounces. |
| 15 | +- Exception/: Bounce‑related exceptions. |
12 | 16 |
|
| 17 | +## Composer/ |
| 18 | +Integration with Composer. |
| 19 | +- ScriptHandler, ModuleFinder, PackageRepository: helpers invoked by Composer scripts and for module discovery. |
13 | 20 |
|
14 | 21 | ## Domain/ |
15 | | - |
16 | | -### Model/ |
17 | | - |
18 | | -These classes are the domain models, which map to some of the database tables, |
19 | | -and where the model-related business logic can be found. There must be no |
20 | | -database access code in these classes. |
21 | | - |
22 | | -### Repository/ |
23 | | - |
24 | | -These classes are responsible for reading domain models from the database, |
25 | | -for writing them there, and for other database queries. |
26 | | - |
27 | | - |
28 | | -## Security |
29 | | - |
30 | | -These classes deal with security-related concerns, e.g., password hashing. |
| 22 | +Domain logic organized by sub‑domains (e.g., Analytics, Common, Configuration, Identity, Messaging, Subscription). |
| 23 | +Each sub‑domain follows similar conventions: |
| 24 | +- Model/: Domain entities/value objects. Contains business logic; no direct DB access. |
| 25 | +- Repository/: Reading/writing models and other DB queries. |
| 26 | +- Service/: Domain services and orchestration. |
| 27 | +- Exception/: Domain‑specific exceptions. |
| 28 | + |
| 29 | +## EmptyStartPageBundle/ |
| 30 | +A minimal Symfony bundle providing an empty start page. |
| 31 | +- Controller/: Controllers for the bundle. |
| 32 | + |
| 33 | +## Migrations/ |
| 34 | +Holds database migration files (Doctrine Migrations). May be empty until migrations are generated. |
| 35 | + |
| 36 | +## Routing/ |
| 37 | +Routing extensions and loaders. |
| 38 | +- ExtraLoader: additional/dynamic route loading. |
| 39 | + |
| 40 | +## Security/ |
| 41 | +Security‑related concerns. |
| 42 | +- Authentication: authentication helpers/integration. |
| 43 | +- HashGenerator: password hashing utilities. |
| 44 | + |
| 45 | +## TestingSupport/ |
| 46 | +Utilities to support tests. |
| 47 | +- Traits/: Reusable traits and helpers used in the test suite. |
31 | 48 |
|
32 | 49 |
|
0 commit comments