System

Architecture

Here is a diagram which summarize FlexiReed's normal functioning:

schema of FlexiReed's functionning

As seen in this diagram, templating system is at the heart of FlexiReed and centralizes all the data before the final outputing.

The "business logic" code lies in actions files, driven by the use of PHP anonymous functions, which are themselves linked to the sub-templates files ("sub-tpl") if a call to a view is needed. Sub-templates files are chunks of HTML which will be integrated in a template file ("tpl") thanks to the use of {tags}; in case of a loop, the use of {{sub-tags}} in the sub-template file will be required.

The input filtering system depends on the superglobals configuration file ("superglobals.init") where constants are defined for each kind of inputs ($_GET, $_POST, $_SESSION).

The caching systems can be setted at 4 levels : superglobals, themes, sub-templates (partial HTML caching) and templates (total HTML caching).

FlexiReed core is divided into the front-end and the back-end parts which have exactly the same architecture, except for the authentication process due to the back-end's constraints.