PhpBB4/Architecture

phpBB4's core consists of a set of components that provide a set of services. For example the Session Component contains the SessionStorage service. Services are always an interface. A dependency injection container chooses the actual implementation. It also defines a basic set of domain entities.

Core components
Dependencies between Components should be kept small so that 3rd parties could reuse some of these without having to use all of phpBB. Maybe we should as such not group services together in components.


 * Component
 * Service


 * Caching
 * KeyValueCache
 * DBAL (Database Abstraction Layer)
 * Messaging
 * Messaging
 * Mail
 * PrivateMessaging
 * XMPP
 * Session
 * SessionStorage
 * Account (current Session & User)
 * TextFormatting
 * BBCodeParser

Default Entities
These are probably going to use an ORM.
 * User
 * Forum
 * Topic
 * Post
 * PrivateMessage

MODS
We need to figure out what kinds of modifications, plugins, addons or extensions we'll have and settle on names for these as early as possible. So that it's clear what's meant in discussions. We also need to come up with a good set of basic feature additions & modifications that we can implement to see whether the architecture can really deal with the modifications/plugins/addons/... as well as we anticipated.