This section is work in progress and only contains some bullet points for the later documenation.
The FLOW3 Framework can be started in different application
contexts. An application context basically is a set of configuration which
has been defined for a certain context. By default, FLOW3 provides
configuration for the Production,
Development, Testing, and
Staging context. More contexts may be defined by just
adding configuration for it accordingly (refer to the Configuration
section to learn more about configuration).
The FLOW3 boot strap is always instantiated in a certain application
context. By default (when calling the index.php file)
the context is Production. In the standard distribution
a file index_dev.php exists which runs FLOW3 in the
Development context.
Construction
Stage 1: instantiate FLOW3 with application context
Stage 2: Check environment for the FLOW3 package
Initialization
Stage 3: Load FLOW3 configuration
from Packages/FLOW3/Configuration/FLOW3.php, /Configuration/FLOW3.php and the context directory
Stage 4: Package configuration
Scan available packages
Load the package configuration from /Configuration/Packages.php, then the context configuration from /Configuration/Production/Packages.php.
Load additional package configuration from [PackageDir]/Configuration/Packages.php
Assert package interdependencies
Assert package environment dependencies
Stage 5: Component Configuration
Register all package classes as components
Load global component configuration from /Configuration/Components.php
Load additional component configuration from packages (/Configuration/Components.php)
POST PROCESSING (defined in Configuration/FLOW3.php):
-> Build aspect containers, proxy classes and modify the component configurations if necessary
Stage 6: Settings
Load settings from global Settings.ini and context Settings.php
Load settings from package's Settings.php
Load settings from additional registered sources
-> Settings are defined per-package and can be retrieved through the package object (getSettings())
Execution
Resolve a request handler and invoke it