You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Core | The backbone of your application, the system-level infrastructure that handles fundamental concerns | Authentication & Authorization, Database, Common Services, Shared Entities | src/Core/src/ |
13
+
| App | The project-specific features, "business logic" of your application | Routes, Handlers, Custom Services, Input Filters, Custom Middleware, Error Reporting | src/App/src/ |
11
14
12
-
The **Core** is the backbone of your application—system-level infrastructure that handles fundamental concerns:
| Handlers (PSR-15) | Process incoming HTTP requests, coordinate application logic/services, and return the HTTP response |`GetUserResourceHandler.php`, `PostUserResourceHandler.php`| Some of the benefits are: separation of concerns, easier testing, clearer intent |
97
+
| Services | Contains the business logic layer that sits between the handlers and repositories | Business rules validation, Data transformation, Cross-cutting concerns | Execution flow: `Handler → Service → Repository → Database`|
98
+
| Repositories | Data access layer using Doctrine ORM | Query building, Entity persistence, Database abstraction | The only component that interacts with the database |
99
+
| Input Filters | Filter and validate requests using Laminas InputFilter | Login form, contact us form, `$_GET` and `$_POST` values, CLI arguments | Execution flow: `Request → InputFilter → Validation → Handler`|
100
+
| Entities | Represent database tables using Doctrine ORM |`class User { ... }`| Ensure consistency between database and application data |
Copy file name to clipboardExpand all lines: docs/book/v7/extended-features/core-and-app.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,10 +5,10 @@ Since version 6.0, the project is split into two main parts: **App** and **Core*
5
5
When you start a new project, there are chances that the requirements are not defined well.
6
6
Because of that, your platform needs to be flexible and allow growth in the long term.
7
7
8
-
Our purpose is to reach a **Headless CMS** architecture for easier scalability.
8
+
Our purpose is to reach a **Headless Platform** architecture for easier scalability.
9
9
10
-
> Headless CMS is a backend-only content management system that acts primarily as a content repository.
11
-
> Compared to traditional CMS platforms (e.g., WordPress) that tightly couple the front end and back end, a headless CMS decouples the content management from the presentation layer.
10
+
> The Headless Platform is a backendsystem that provides data and functionality via an API, completely decoupled from any frontend presentation layer.
11
+
> Unlike monolithic platforms like WordPress that bundle the backend and frontend together, a Headless Platform separates content delivery from the presentation layer.
12
12
> The content is delivered through APIs allowing any frontend to fetch and display it, which also enables working in parallel on the backend and potentially multiple frontends.
Copy file name to clipboardExpand all lines: docs/book/v7/introduction/introduction.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ For our API payloads (a value object for describing the API resource, its relati
54
54
55
55
## CORS
56
56
57
-
By using `MezzioCorsMiddlewareCorsMiddleware`, the CORS preflight will be recognized and the middleware will start to detect the proper CORS configuration.
57
+
By using `Mezzio\Cors\Middleware\CorsMiddleware`, the CORS preflight will be recognized and the middleware will start to detect the proper CORS configuration.
58
58
The Router is used to detect every allowed request method by executing a route match with all possible request methods.
59
59
Therefore, for every preflight request, there is at least one Router request.
60
60
@@ -67,7 +67,7 @@ We use [mezzio/mezzio-authentication-oauth2](https://github.com/mezzio/mezzio-au
67
67
68
68
It is not unlikely for an API to send emails depending on the use case.
69
69
Here is another area where Dotkernel API shines.
70
-
Using `DotMailServiceMailService` provided by [dotkernel/dot-mail](https://github.com/dotkernel/dot-mail) you can send custom email templates.
70
+
Using `Dot\Mail\Service\MailService` provided by [dotkernel/dot-mail](https://github.com/dotkernel/dot-mail) you can send custom email templates.
Jump to the [Installation Guide](https://docs.dotkernel.org/api-documentation/v7/installation/getting-started/) to set up your first Dotkernel API application.
133
+
134
+
- Jump to the [Installation Guide](https://docs.dotkernel.org/api-documentation/v7/installation/getting-started/) to set up your first Dotkernel API application.
135
+
- Learn the [Upgrade Procedure](https://docs.dotkernel.org/api-documentation/v7/upgrading/upgrading/) between different versions of Dotkernel API.
136
+
- Check out the [Architecture at a Glance](https://docs.dotkernel.org/api-documentation/v7/architecture-at-a-glance/).
137
+
- Review the [Core Features](https://docs.dotkernel.org/api-documentation/v7/core-features/authentication/).
138
+
- Run through the [Tutorials](https://docs.dotkernel.org/api-documentation/v7/tutorials/cors/) for step-by-step instructions on how to use Dotkernel API.
0 commit comments