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
[> DDD Tools and Libs](https://github.com/codeliner/php-ddd-cargo-sample/blob/master/docs/domain-driven-design-tools.md)
12
9
Goal of the Project
13
10
-------------------
14
11
We want to show the PHP way of implementing Domain-Driven Design with the help of
15
12
the original Cargo sample used in Eric Evans book
16
13
`Domain-Driven Design: Tackling Complexity in the Heart of Software`.
17
14
This has already been done using java and a C# version is also available.
18
-
The sample is not meant to be as the one and only way. It should help you understand the theory
15
+
16
+
It is not the one way to apply DDD, but should help you understand the theory
19
17
and gives you a starting point. Also see the [Caveats](http://dddsample.sourceforge.net/) of the
20
18
java implementation. The same applies for our version.
21
19
20
+
<b>The PHP port is work in progress. Your welcome to fork the repo and help finishing the cargo sample application.</b>
21
+
22
+
The application layer is based on ZF2 and we use Doctrine2 to persist our aggregates.
23
+
This would be a common combination in a large PHP project but both frameworks are not required. They just make our life easier and let us focus on the Domain-Driven Design implementation. Both can be replaced with any other PHP based components.
24
+
25
+
<b>If you like our shipping system, become a stargazer or watch the project and come back soon. We have some interssting topics in the pipeline. Here is a preview of what follows next:</b>
26
+
27
+
+ Introduce an application layer to better shield the domain
28
+
+ Switch to hexagonal architecture
29
+
+ A deep dive into Entities, ValueObjects, Aggregates and DomainServices
30
+
+ Communication across bounded contexts
31
+
+ CQRS and asynchonous Messaging
32
+
+ Use EventSourcing to persist Aggregates
33
+
34
+
22
35
Iterative Implementation
23
36
------------------------
24
37
To go with you when you read the book, our sample has a [release of each chapter](https://github.com/codeliner/php-ddd-cargo-sample#chapter-overview). So you can
25
38
simply `git checkout ChapterOne` and you only get the starting view of the domain
26
39
with just to entities `Cargo` and `Voyage`. Our application evolves chapter by chapter
27
40
the more knowledge we get about the domain. Each chapter ships with it's own review, where you can find additional information about the implementation, tips and tricks and many more.
+[DDD Tools and Libs](https://github.com/codeliner/php-ddd-cargo-sample/blob/master/docs/domain-driven-design-tools.md)
44
+
45
+
29
46
Chapter Overview
30
47
----------------
31
48
@@ -83,13 +100,3 @@ Support
83
100
If you have any problems with the application please let me know and send me an email `kontakt[at]codeliner[dot]ws` or open a [GitHub issue](https://github.com/codeliner/php-ddd-cargo-sample/issues?state=open).
84
101
Same applies if you have a question or a feature wish.
85
102
Maybe I've missed a concept that you hoped to find in the example.
86
-
87
-
Acknowledgement
88
-
---------------
89
-
This project is work in progress. Your welcome to fork the repo and help finishing the cargo sample application for php.
90
-
The application layer is based on ZF2 and we use Doctrine2 to persist our aggregates.
91
-
This would be a common combination in a large PHP project but both frameworks are not required. They just make our life easier
92
-
and let us focus on the Domain-Driven Design implementation. Both can be replaced with any other PHP based components.
93
-
94
-
The original cargo sample written in java can be found [here](http://dddsample.sourceforge.net/).
0 commit comments