Oroboros Core Architecture

Project Index


Oroboros Core is an interoperability and MVC toolbox

The purpose of this project is to provide the baseline fundamental components required to create a stable, functional system without hijacking control from the intended order of operations or requiring an overly opinionated approach to integrating the utilities it provides.

Oroboros Core provides baseline integrations of all existing accepted Psr standards, and a means of substitution so that classes from other middleware libraries can be distributed or returned in place of the native ones provided by this system. This allows you to part together numerous components of other libraries and manage them in a simple manner from one location.

This library also provides the baseline functionality required to produce a functional MVC system, or any of the common variants such as MVA, MVVP, MVAC, etc. The provided components do not expect any particular relation to one another by default, and can be designated to work together however you wish.

All of the logic in this package is expressed through traits

They may be bound to any class that does not have colliding methods. In the interest of maintaining the standard interface driven means of validation, all of these traits correspond to an interface that validates their methods, and all internal checks work against these interfaces, not the traits. Baseline abstract and concrete classes are provided for default functionality, but you may also implement the interface and use the corresponding trait on any existing class to allow that class to work interoperably with the internals of this package. This provides a means to bridge equivalent components from two or more other packages in a way that would not otherwise be possible without writing numerous adapters or wrappers.


Most other packages distributed under Oroboros use the core package to fulfill most of their baseline functionality, but take an opinionated twist on the underlying logic to fulfill an expressed purpose. This package is just an architecture toolbox, intended to provide baseline answers to the most common set of needs in developing a framework, middleware library, content management system, putting a solid effort into integrating two or more independent systems, or incrementally moving a legacy system towards modern standards.