summaryrefslogtreecommitdiff
path: root/core/config/init.php
blob: 589a486e908066fb49dbb281c3e0562454558550 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?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 /public/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
 */

// setup error-handliing
// -----------------------------------------------------------------------------
require_once '../core/helpers/error_handling.php';


// depricated:
/// // 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)(); });


// 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/config/init_routes.php';      // initialize routes