diff options
Diffstat (limited to 'config/init.php')
| -rw-r--r-- | config/init.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/config/init.php b/config/init.php new file mode 100644 index 0000000..b035faf --- /dev/null +++ b/config/init.php @@ -0,0 +1,76 @@ +<?php + +/** initialize System + * --- + * Finalalize the MVC framework and construct the central objects + * (Registry and Request) + * + * Include _anything_ that is common practice on the request life-cycle + * of your project and does not need to be shown in the /html/index.php + * Usualy here you shall initialize supplamentary services like Sessions + * / Database / Caching etc. + * + * NOTE: + * Always try to keep the app as light as possible, so load only what is + * critical for the MVC to operate; + * anything else can be injected on-demand + */ + +// Load authorization parametres +// ----------------------------------------------------------------------------- +require_once CREDENTIALS; + + +// setup error-handliing +// ----------------------------------------------------------------------------- +require_once '../core/helpers/error_handling.php'; + + +// Load rendering sub-system +// ----------------------------------------------------------------------------- +require_once RENDERING_SYSTEM; + + +// Setup Application Engiine +// ----------------------------------------------------------------------------- +// Setup supplementary services (derectry or as promises/vows) +// Session, Database, Caching + + +// Attache database to the Regostry a vow +Registry::vow('database', function() { return new Database(); }); + + +// Attach Cache to the Resitry as a vow +// (CACHE_DRIVER) acts as driver-wrapper +Registry::vow('cache', function() { return new (CACHE_DRIVER)(); }); +// CHECK: if strict mode has any benefits: +// Registry::vow('cache', function():Cache_interface { return new (CACHE_DRIVER)(); }); + + +// Start session +Registry::set('session', new DefaultSession()); + + + +// Initialize THE REQUEST +// ----------------------------------------------------------------------------- +Registry::set('REQUEST', new Request()); + + + +// load design-patterns +// (these patterns use some of the project's central objects (Registry, +// Cache, Database), so laod them after. +// ----------------------------------------------------------------------------- +require_once '../core/helpers/design_patterns.php'; + + +// Add Routes +// ----------------------------------------------------------------------------- + +require_once 'app/routes/api.php'; // API: =/api/{table}/{id};/api/* + +require_once 'app/routes/backend.php'; // Backend: =/admin/* + +require_once 'app/routes/frontend.php'; // Frontend =/* (whatever) |
