Skip to content

Commit 987873e

Browse files
committed
Update: docs
1 parent 93547aa commit 987873e

File tree

1 file changed

+39
-22
lines changed

1 file changed

+39
-22
lines changed

docs/ClassStructure.md

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,49 @@
11
# Class structure
22

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/`.
64

75
## 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.
810

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.
1216

17+
## Composer/
18+
Integration with Composer.
19+
- ScriptHandler, ModuleFinder, PackageRepository: helpers invoked by Composer scripts and for module discovery.
1320

1421
## 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.
3148

3249

0 commit comments

Comments
 (0)