From f06f259313238daab27b27312c4cefdefb5aae7f Mon Sep 17 00:00:00 2001 From: tobscure Date: Fri, 19 Dec 2014 21:39:41 -0800 Subject: [PATCH] fix link --- Architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Architecture.md b/Architecture.md index bc6421d..6c45ff6 100644 --- a/Architecture.md +++ b/Architecture.md @@ -14,7 +14,7 @@ Flarum is a dynamic application and its domain needs to be able to be extended w **Entities** (e.g. Discussion, Post, User) are based on Laravel’s Eloquent ORM. They use [Permissible](https://github.com/tobscure/permissible) to define logical permission clauses. They also have inbuilt validation. -**Repositories** are generally used to find/save/delete entities, providing a proper layer of database abstraction. However, during development so far, adhering strictly to this pattern has sometimes caused more trouble than it is worth (especially when thinking about how [Extensions] will deal with Entities and Repositories.) Thus, the abstraction is a bit leaky. This may become apparent and need to be dealt with when [tests are written](https://github.com/flarum/core/issues/3). +**Repositories** are generally used to find/save/delete entities, providing a proper layer of database abstraction. However, during development so far, adhering strictly to this pattern has sometimes caused more trouble than it is worth (especially when thinking about how [Extensions](Extensions) will deal with Entities and Repositories.) Thus, the abstraction is a bit leaky. This may become apparent and need to be dealt with when [tests are written](https://github.com/flarum/core/issues/3). **Commands** and **Domain Events** are associated with each Entity type, in line with [this pattern](https://github.com/laracasts/Commander). **Listeners** are used to do things like update metadata (post count, last post time, etc.), format post content, and send emails. This pattern is very suitable as Extensions will easily be able to listen for Domain Events.