Skip to content

Commit 91d8b18

Browse files
committed
updated content
1 parent 1d2f744 commit 91d8b18

47 files changed

Lines changed: 1627 additions & 26 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/book/llms-full.txt

Lines changed: 686 additions & 0 deletions
Large diffs are not rendered by default.

docs/book/v1/admin/introduction.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,8 @@ A: Yes, it has built-in reports and graphs to help you monitor your platform.
2626

2727
**Q: What standards does Dotkernel Admin implement?**
2828
A: PSR-7 and PSR-15, as defined by the PHP Framework Interop Group (PHP-FIG).
29+
30+
## See also
31+
32+
- [Usage](usage.md) — how Admin fits alongside API and Queue.
33+
- [Architecture Overview](../architecture.md) — how all the platform pieces fit together.

docs/book/v1/admin/usage.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ Explains how Dotkernel Admin fits alongside Dotkernel API and Dotkernel Queue, a
77
## Details
88

99
Dotkernel Admin can be installed independently or together with other applications in the Dotkernel suite, based on your business requirements.
10-
These components are designed to complement each other (out-of-box they are separate codebases):
11-
12-
- **Dotkernel API** exposes the content to 3rd-party frontends or backends.
13-
- **Dotkernel Admin** (optional) manages the data (create, edit, delete).
14-
- **Dotkernel Queue** (optional) queue management microservice.
10+
Out of the box, Admin, API, and Queue are separate codebases designed to complement each other — see the [Architecture Overview](../architecture.md) for how they fit together.
1511

1612
You can start with Dotkernel Admin and integrate it into your existing platform.
1713
The Admin has built-in reports and graphs that can be configured and customized based on your needs.
@@ -31,3 +27,9 @@ A: No, out of the box they are separate codebases designed to complement each ot
3127

3228
**Q: What do Dotkernel API and Dotkernel Queue add to Admin?**
3329
A: The API handles data manipulation for the platform, and Queue handles asynchronous task processing.
30+
31+
## See also
32+
33+
- [Dotkernel API: Usage](../api/usage.md)
34+
- [Dotkernel Queue: Usage](../queue/usage.md)
35+
- [Architecture Overview](../architecture.md)

docs/book/v1/api/introduction.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ An overview of Dotkernel API, the Mezzio-based REST API at the root of the Dotke
77
## Details
88

99
Dotkernel API is a REST API based on the Mezzio skeleton.
10-
The API is the root or the Dotkernel Headless Platform.
10+
The API is the root of the Dotkernel Headless Platform.
1111

1212
Dotkernel API:
1313

@@ -25,3 +25,8 @@ A: It is the root of the Dotkernel Headless Platform.
2525

2626
**Q: What standards does Dotkernel API implement?**
2727
A: PSR-7 and PSR-15, as defined by the PHP Framework Interop Group (PHP-FIG).
28+
29+
## See also
30+
31+
- [Usage](usage.md) — how API fits alongside Admin and Queue.
32+
- [Architecture Overview](../architecture.md) — how all the platform pieces fit together.

docs/book/v1/api/usage.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ Explains how Dotkernel API fits alongside Dotkernel Admin and Dotkernel Queue, a
77
## Details
88

99
Dotkernel API can be installed independently or together with other applications in the Dotkernel suite, based on your business requirements.
10-
These components are designed to complement each other (out-of-box they are separate codebases):
11-
12-
- **Dotkernel API** exposes the content to 3rd-party frontends or backends.
13-
- **Dotkernel Admin** (optional) manages the data (create, edit, delete).
14-
- **Dotkernel Queue** (optional) queue management microservice.
10+
Out of the box, API, Admin, and Queue are separate codebases designed to complement each other — see the [Architecture Overview](../architecture.md) for how they fit together.
1511

1612
A safe bet is to start with Dotkernel API and integrate it into your existing platform.
1713
The API can manage the access permissions to keep your data secure:
@@ -34,3 +30,9 @@ A: Admin-level users create and edit the data, while regular users read the data
3430

3531
**Q: What can I add to Dotkernel API later?**
3632
A: Dotkernel Admin for its table-based management, reports and graphs, and Dotkernel Queue for asynchronous task processing.
33+
34+
## See also
35+
36+
- [Dotkernel Admin: Usage](../admin/usage.md)
37+
- [Dotkernel Queue: Usage](../queue/usage.md)
38+
- [Architecture Overview](../architecture.md)

docs/book/v1/architecture.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Architecture Overview
2+
3+
## Summary
4+
5+
Ties together the four building blocks of the Dotkernel Headless Platform — API, Admin, Queue, and the Core submodule — and shows how they combine into a single platform.
6+
7+
## Details
8+
9+
The [Headless Platform](introduction.md) principle is to decouple the frontend from the backend services, so any number of outside systems can consume the same backend. Dotkernel implements this with four building blocks, each its own Git repository, which you combine based on your needs:
10+
11+
- **[Dotkernel API](api/introduction.md)** exposes your data to 3rd-party frontends or backends.
12+
- **[Dotkernel Admin](admin/introduction.md)** (optional) manages the data through a simple table-based UI, with built-in reports and graphs.
13+
- **[Dotkernel Queue](queue/introduction.md)** (optional) handles asynchronous task processing as its own microservice.
14+
- **[Core submodule](core/introduction.md)** is the shared codebase that any of the above applications can include, so they all manage database entities and services the same way.
15+
16+
You don't need every piece from the start. You can begin with [just Admin](admin/usage.md) or [just API](api/usage.md) and add the others later as requirements grow. Once you're running more than one application, pull the shared logic out into a [Core submodule](core/creation.md) and include it in each one — a typical setup looks like API + Core, Admin + Core, and Queue + Core, each in its own repository, all reading from the same shared entities and services (see [Using the Core Submodule](core/usage.md)).
17+
18+
Regardless of which pieces you use, every Dotkernel application and package boots the same way: through a [ConfigProvider](config-provider/introduction.md) that declares its dependencies, handlers, and configuration, merged together by the framework at [bootstrap time](config-provider/functionality.md).
19+
20+
## FAQ
21+
22+
**Q: What are the building blocks of the Dotkernel Headless Platform?**
23+
A: Dotkernel API, Dotkernel Admin, Dotkernel Queue, and the Core submodule.
24+
25+
**Q: Do I need all four components to get started?**
26+
A: No, you can start with just Admin or just API and add the others as your requirements grow.
27+
28+
**Q: How do multiple applications stay consistent with each other?**
29+
A: By sharing a Core submodule for entities and services, and by each bootstrapping through its own ConfigProvider.

docs/book/v1/config-provider/benefits.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ Lists the benefits of using a ConfigProvider, including centralized, modular, co
99
- **Centralized setup** – Instead of hardcoding bootstrap code, you declare it in a config provider so it's easy to read, change, or extend.
1010
- **Modular** – Each package can ship with its own config without interfering with others.
1111
- **Container-friendly** – It works well with frameworks using DI containers like Laminas ServiceManager, PHP-DI, or Pimple.
12-
- **Standardized service definitions** - It has consistent rules for object creation that are separate from business logic.
13-
- **Environment-agnostic** - It returns an array that defines dev, test, or prod environments.
14-
- **Testability** - The consistent, central configuration promotes isolated (e.g. per-module) testing, easier swapping of dependencies and the assertion of pipeline setup (e.g. check if a config key is present).
12+
- **Standardized service definitions** It has consistent rules for object creation that are separate from business logic.
13+
- **Environment-agnostic** It returns an array that defines dev, test, or prod environments.
14+
- **Testability** The consistent, central configuration promotes isolated (e.g. per-module) testing, easier swapping of dependencies and the assertion of pipeline setup (e.g. check if a config key is present).
1515

1616
> **Dotkernel ConfigProviders** have to be **added manually** in `config/config.php`, because all the initial ConfigProviders required to install the applications are already injected.
1717
@@ -25,3 +25,8 @@ A: Yes, it's container-friendly and works with DI containers like Laminas Servic
2525

2626
**Q: Do I need to register Dotkernel ConfigProviders manually?**
2727
A: Yes, Dotkernel ConfigProviders must be added manually in `config/config.php`.
28+
29+
## See also
30+
31+
- [Introduction](introduction.md)
32+
- [How the ConfigProvider works](functionality.md)

docs/book/v1/config-provider/functionality.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ $config = $container->get('config')['key'] ?? [];
2626

2727
Below you can see how Mezzio and Dotkernel merge and use ConfigProviders to build the middleware pipeline and dependencies.
2828

29-
![Headless Platform with Core Submodule](https://docs.dotkernel.org/img/headless-platform/ConfigProvider.png)
29+
![Diagram of Mezzio and Dotkernel merging ConfigProviders into the middleware pipeline](https://docs.dotkernel.org/img/headless-platform/ConfigProvider.png)
3030

3131
## FAQ
3232

@@ -38,3 +38,8 @@ A: `$app->pipe()` resolves a service name from the container, wraps a middleware
3838

3939
**Q: Why does the error-handling middleware run last in the pipeline?**
4040
A: So it can catch any exceptions raised by the preceding middleware.
41+
42+
## See also
43+
44+
- [Introduction](introduction.md)
45+
- [Benefits](benefits.md)

docs/book/v1/config-provider/introduction.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,9 @@ A: Dotkernel API, Admin, Frontend, Light, and Packages all use ConfigProviders.
6868

6969
**Q: Is the Dotkernel ConfigProvider approach specific to Dotkernel?**
7070
A: No, it follows an approach similar to Laminas/Mezzio.
71+
72+
## See also
73+
74+
- [How the ConfigProvider works](functionality.md)
75+
- [Benefits](benefits.md)
76+
- [Glossary](../glossary.md)

docs/book/v1/core/benefits.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,8 @@ A: Yes, it allows splitting the work across multiple developers.
2727

2828
**Q: How do new applications connect to the platform?**
2929
A: Each new application connects via the central API, which services everything the other applications require.
30+
31+
## See also
32+
33+
- [Introduction](introduction.md)
34+
- [Using the Core Submodule](usage.md)

0 commit comments

Comments
 (0)