Book Image

Domain-Driven Design in PHP

By : Keyvan Akbary, Carlos Buenosvinos, Christian Soronellas
Book Image

Domain-Driven Design in PHP

By: Keyvan Akbary, Carlos Buenosvinos, Christian Soronellas

Overview of this book

Domain-Driven Design (DDD) has arrived in the PHP community, but for all the talk, there is very little real code. Without being in a training session and with no PHP real examples, learning DDD can be challenging. This book changes all that. It details how to implement tactical DDD patterns and gives full examples of topics such as integrating Bounded Contexts with REST, and DDD messaging strategies. In this book, the authors show you, with tons of details and examples, how to properly design Entities, Value Objects, Services, Domain Events, Aggregates, Factories, Repositories, Services, and Application Services with PHP. They show how to apply Hexagonal Architecture within your application whether you use an open source framework or your own.
Table of Contents (24 chapters)
Title Page
Credits
Foreword
About the Authors
Acknowledgments
www.PacktPub.com
Customer Feedback
Dedication
Preface
14
Bibliography
15
The End

Definition


Domain Events are one specific type of Event used for notifying local or remote Bounded Contexts of Domain changes.

Vaughn Vernon defines a Domain Event as:

An occurrence of something that happened in the domain.

Eric Evans defines a Domain Event as:

A full-fledged part of the Domain Model, a representation of something that happened in the Domain. Ignore irrelevant Domain activity while making explicit the events that the Domain Experts want to track or be notified of, or which are associated with state change in the other Model objects.

Martin Fowler defines a Domain Event as something that:

    Captures the memory of something interesting which affects the Domain.

Examples of Domain Events in a web application are UserRegistered, OrderPlaced, UserRelocated, and ProductAdded.

Short Story

In a ticket sales agency, a content manager decides to increase the price of a U2 show. Using her back office, she edits the show. A ShowPriceChanged Domain Event is published and persisted into the...