#355 - MVC rewrite

Identifier #355
Issue type Feature request or suggestion
Title MVC rewrite
Status Completed
Tags

Risk: Major rearchitecting (custom)

Handling member Chris Graham
Addon core
Description Much was done in the old 'v8' branch, that will need reimplementing again.

Changes under 'Additional information'.
Steps to reproduce

Additional information The 'sources' directory structure has changed: basically split into 'controllers', 'content_models' and 'sys_models'

Something similar to 'dependency injection' is now achieved via a new vtable-based object dispatch architecture

require_code calls are no longer required - it is built into the object dispatch architecture

Direct object 'new' instantiation is no longer allowed, instead you have to use the object dispatch architecture

'sources' files are now simply 'classes'. They are instantiated like singletons, hooked into a singleton vtable for re-use; but without the disadvantage of singletons because the call tree allows them to be swapped out as required

Most global variables have been eliminated, replaced with static variables or object properties

Exceptions are now used instead of triggering exits mid-code

There is a much stronger MVC architecture enforced

Now only 'model' objects are allowed to interface with the data store, so that we know we can always plug&play model implementations and guarantee writes are passed through an interface that we can track for revision control

The override mechanism is now object orientated, rather than working via code rewriting. The object dispatch architecture recognises a naming convention for override classes.

The code-rewriting override mechanism function naming convention has been changed
Funded? No
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".

Rating

Unrated