summaryrefslogtreecommitdiff
path: root/core/config/anom_settings.php
blob: 406c6aaa6e553ea33c35e97c89e4c38f63ebf9bf (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
<?php
/** CONFIGURATION PATAMETRES
 * ---
 * This is the first file you need to setup
 * in order to start a new application
 */

// DEFINE WHETTHER THE APP RUNS ON PRODUCTION
// Don't forget to change this setting
// when deploying to a different stage
// -----------------------------------------------------------------------------
// define by OS parameter
//// if (getenv('ENVIRONMENT')) { 
////   if (getenv('ENVIRONMENT') == 'PRODUCTION') {
//// 
////     define('PRODUCTION', true);
//// 
////   } else {
////     define('PRODUCTION', false);
////   }
//// } 
//// // define by .env file
//// if (!defined('PRODUCTION')) {
////   if (file_exists('../core/auth/.env')) {
////     $ini_array = parse_ini_file("../core/auth/.env");
//// 
////     define('PRODUCTION', $ini_array['ENVIRONMENT']);
////   }
//// } else  {
////   define('PRODUCTION', false);    // or define manualy 
//// }
define('PRODUCTION', false);


// Custom Names ////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------

define('APP_NAME', 'e-Classroom');      // Application Name

define('APP_VERSION', 'v0.2');          // Application version

define('SESSION_NAME', 'clroom');       // Session Name



// APPLICATION PATHS ///////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------

// Obligarory
// These are needed in order to run the bare minimum MVC system
// They also make code easier to read
//
// NOTE: probably you don't need to chage these defines
// -----------------------------------------------------------------------------

define('APP_ROOT', dirname(get_included_files()[0]) );

define('URL_ROOT', '/');

define('CREDENTIALS', '../core/config/credentials.php');

define('INIT_APPLICATION', '../core/config/init.php');

define('RENDERING_SYSTEM', '../core/helpers/render.php');

define('VIEWS_DIRECTORY', APP_ROOT.'/app/views/');

define('TESTS_DIRECTORY', APP_ROOT."/../tests/");


// AUTOLOADER //////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------

// An autoloader for classes is required;
// OPTION 1: COMPOSER
// Composer is recommended and makes much more than simple autoloding
define('AUTOLOADER' , '../vendor/autoload.php');

// OPTION 2: Custom Autoloader
// If Composer is not supported, another autoloading proccess required
// Comment/Disable the 1st option and uncomment/Enable the next line
# define('AUTOLOADER' , '../core/helpers/autoload.php');

// CLASSPATHS : array of paths where classes are saved
// Needed only when the custom autoloader is used
// (like autoload.classmap section of Composer)
# define('CLASSPATHS', array(
#     '/../core/classes/',
#     '/app/controllers/',
#     '/app/models/',
#     '/../vendor/'
#   )
# );



// ADVANCED OPTIMIZATION ///////////////////////////////////////////////////////
// -----------------------------------------------------------------------------

// APP_CACHE defines the cache-driver;
// accepted values are the name of the Cache-interface impementations (the exact
// names of the classes)
//
// 'FileCache'  : caching in filesystem; fair if caching on HDD; great on SSD
// 'RedisCache' : caching in Redis server; generally recommended if available
// 'MemCachedCache' : caching in Memcached server; recommended if available
//
// NOTE: FileCache on a NVMe SDD is the fastest option;
// Redis and Memcached are really-fast caching options and are available for
// scaling horizontaly your application (eache one has it's own strngths;
// study, then choose the one that fulfills your needs;
// -----------------------------------------------------------------------------

define('CACHE_DRIVER', 'FileCache');

// Caching expiration times fpr various expensive objects
// -----------------------------------------------------------------------------

// Root objects like product-categories tree
define('CACHE_ROOT_TTL', 28800);        // 8 hours

// Product Category
define('CACHE_CATEGORY_TTL', 18000);    // 5 hours

// Product
define('CACHE_PRODUCT_TTL', 3600);      // 1 hour


// SESSION_DRIVER ; accepted values...
// 'files'    : (defult) php uses filesystem for saving session; fair if caching in SSD drive
// 'redis'    : keep sessions in a Redis server; rapid-fast but wastes large amount of RAM
// 'database' : keep session data in Database; ideal for session across multiple servers
// -----------------------------------------------------------------------------

define('SESSION_DRIVER', 'files');

// CONNECTIONS ...

define('FILECACHE_PATH', APP_ROOT.'/cache/');   // if CACHE_DRIVER is set to 'FileCache'

# define('REDIS_HOST', '127.0.0.1');              // if CACHE_DRIVER is set to 'RedisCache'

# define('MEMCAHCED_SERVER', '127.0.0.1');        // if CACHE_DRIVER is set to 'MemCached'




// SECURITY SETTINGS ///////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------

// Cross Site Request Forgery
// ---
// Enables a CSRF cookie token to be set. When set to TRUE, token will be
// checked on a submitted form. If you are accepting user data, it is strongly
// recommended CSRF protection be enabled.
// -----------------------------------------------------------------------------

define('CSRF_PROTCTION', false);

define('CSRF_TOKEN_NAME', 'csrf_test_name');        // token name

define('CSRF_COOKIE_NAME', 'csrf_cookie_name');     // cookie name

define('CSRF_EXPIRE', 7200);            // The number in seconds the token should expire.

define('CSRF_REGENERATE', TRUE);        // Regenerate token on every submission

define('CSRF_EXCLUDE_URIS', array());   // Array of URIs which ignore CSRF checks