-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathindex.php
104 lines (88 loc) · 3.18 KB
/
index.php
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
<?php
/**
* BloggerCMS - Easiest Static Blog Generator
*
* @author Sarfraz Ahmed <[email protected]>
* @copyright 2015 Sarfraz Ahmed
* @link https://bloggercms.github.io
* @version 1.0.0
*
* MIT LICENSE
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
session_start();
// autoload dependencies automatically via magical composer autoload
require_once __DIR__ . '/vendor/autoload.php';
// website configuration file
require_once 'config.php';
// set default timezone
date_default_timezone_set('Asia/Karachi');
// set error reporting
if ($config['mode'] === 'development') {
ini_set('display_errors', true);
error_reporting(1);
}
// path to save logs to
$logWriter = new \Slim\LogWriter(fopen($config['log_path'] . 'applog.log', 'a+'));
// instantiate slim framework
$options = array(
'debug' => $config['debug'],
'templates.path' => 'views/',
'mode' => $config['mode'],
'log.writer' => $logWriter,
'cookies.encrypt' => true,
'cookies.cipher' => MCRYPT_RIJNDAEL_256,
'cookies.secret_key' => md5('@!secret!@'),
'cookies.lifetime' => '20 minutes'
);
$app = new \Slim\Slim($options);
$app->setName($config['appname']); // later in view for example: $app->getName()
$app->hook(
'slim.before.router',
function () use ($app, $config) {
$setting = new \BloggerCMS\Setting();
$app->view()->setData('app', $app); // we can now use $app in views
$app->view()->setData('root', ltrim(dirname($_SERVER['SCRIPT_NAME']), '\\'));
$app->view()->setData('layoutsDir', dirname(__FILE__) . '/layouts/');
$app->view()->setData('dateFormat', $config['dateFormat']);
$app->view()->setData('blogURL', $setting->getBlogURL());
}
);
// slim environment
$environment = \Slim\Environment::getInstance();
// logging
$log = $app->getLog();
$log->setEnabled(false);
if ($config['mode'] === 'development') {
$app->configureMode(
'development',
function () use ($log) {
/*
$log->setLevel(\Slim\Log::DEBUG);
$log->setEnabled(true);
$log->debug("Application Started...");
*/
}
);
}
// routes file
require_once 'routes.php';
$app->run();