Shimmie2 / SCore
Shimmie2 / SCore Documentation

SCore is a framework designed for writing flexible, extendable applications. Whereas most PHP apps are built monolithicly, score's event-based nature allows parts to be mixed and matched. For instance, the most famous collection of score extensions is the Shimmie image board, which includes user management, a wiki, a private messaging system, etc. But one could easily remove the image board bits and simply have a wiki with users and PMs; or one could replace it with a blog module; or one could have a blog which links to images on an image board, with no wiki or messaging, and so on and so on...

Dijkstra will kill me for personifying my architecture, but I can't think of a better way without going into all the little details. There are a bunch of Extension subclasses, they talk to eachother by sending and recieving Event subclasses. The primary driver for each conversation is the initial PageRequestEvent. If an Extension wants to display something to the user, it adds a block to the Page data store. Once the conversation is over, the Page is passed to the current theme's Layout class which will tidy up the data and present it to the user. To see this in a more practical sense, see The Hello World Extension.

To learn more about the architecture:

To learn more about practical development: