forked from KodiCMS-Kohana/cms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.php
168 lines (143 loc) · 4.71 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
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
/**
* PHP Builtin server allows you to serve any files which are access by path in the usual way,
* but then redirect all other requests through to index.php.
* Usage: php -S <host|ip>:<port> [-t docroot] index.php
*
* @see http://php.net/manual/en/features.commandline.webserver.php
**/
if (php_sapi_name() == "cli-server" AND ( $_SERVER['REQUEST_URI'] != '/') AND
file_exists(__DIR__ . DIRECTORY_SEPARATOR . $_SERVER['REQUEST_URI'])
)
{
return FALSE; // serve the requested resource as-is.
}
$cms = 'cms' . DIRECTORY_SEPARATOR;
/**
* The directory in which your application specific resources are located.
* The application directory must contain the bootstrap.php file.
*
* @see http://kohanaframework.org/guide/about.install#application
*/
$application = $cms . 'application';
/**
* The directory in which your modules are located.
*
* @see http://kohanaframework.org/guide/about.install#modules
*/
$modules = $cms . 'modules';
/**
* The directory in which the Kohana resources are located. The system
* directory must contain the classes/kohana.php file.
*
* @see http://kohanaframework.org/guide/about.install#system
*/
$system = $cms . 'system';
/**
* The default extension of resource files. If you change this, all resources
* must be renamed to use the new extension.
*
* @see http://kohanaframework.org/guide/about.install#ext
*/
define('EXT', '.php');
/**
* Set the PHP error reporting level. If you set this in php.ini, you remove this.
* @see http://php.net/error_reporting
*
* When developing your application, it is highly recommended to enable notices
* and strict warnings. Enable them by using: E_ALL | E_STRICT
*
* In a production environment, it is safe to ignore notices and strict warnings.
* Disable them by using: E_ALL ^ E_NOTICE
*
* When using a legacy application with PHP >= 5.3, it is recommended to disable
* deprecated notices. Disable with: E_ALL & ~E_DEPRECATED
*/
error_reporting(E_ALL | E_STRICT);
/**
* End of standard configuration! Changing any of the code below should only be
* attempted by those with a working knowledge of Kohana internals.
*
* @see http://kohanaframework.org/guide/using.configuration
*/
// Set the full path to the docroot
define('DOCROOT', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);
// Make the plugins relative to the docroot, for symlink'd index.php
if (!is_dir($cms) AND is_dir(DOCROOT . $cms))
$cms = DOCROOT . $cms;
// Make the application relative to the docroot, for symlink'd index.php
if (!is_dir($application) AND is_dir(DOCROOT . $application))
$application = DOCROOT . $application;
// Make the modules relative to the docroot, for symlink'd index.php
if (!is_dir($modules) AND is_dir(DOCROOT . $modules))
$modules = DOCROOT . $modules;
// Make the system relative to the docroot, for symlink'd index.php
if (!is_dir($system) AND is_dir(DOCROOT . $system))
$system = DOCROOT . $system;
// Define the absolute paths for configured directories
define('CMSPATH', realpath($cms) . DIRECTORY_SEPARATOR);
define('APPPATH', realpath($application) . DIRECTORY_SEPARATOR);
define('MODPATH', realpath($modules) . DIRECTORY_SEPARATOR);
define('SYSPATH', realpath($system) . DIRECTORY_SEPARATOR);
define('CFGFATH', DOCROOT . 'config' . EXT);
// Clean up the configuration vars
unset($application, $modules, $system, $cms);
/**
* Define the start time of the application, used for profiling.
*/
if (!defined('KOHANA_START_TIME'))
{
define('KOHANA_START_TIME', microtime(TRUE));
}
/**
* Define the memory usage at the start of the application, used for profiling.
*/
if (!defined('KOHANA_START_MEMORY'))
{
define('KOHANA_START_MEMORY', memory_get_usage());
}
// Check is installed CMS
$is_installed = FALSE;
if (file_exists(CFGFATH))
{
$is_installed = TRUE;
include CFGFATH;
if (!defined('ADMIN_DIR_NAME'))
{
$is_installed = FALSE;
}
}
define('IS_INSTALLED', $is_installed);
// Bootstrap the application
require APPPATH . 'bootstrap' . EXT;
$uri = TRUE;
if (IS_INSTALLED)
{
include APPPATH . 'init' . EXT;
}
else if (is_dir(MODPATH . 'installer'))
{
// Load the installation check
include MODPATH . 'installer' . DIRECTORY_SEPARATOR . 'bootstrap' . EXT;
}
else
{
die('Please use module Installer to install KodiCMS.');
}
if (PHP_SAPI == 'cli') // Try and load minion
{
class_exists('Minion_Task') OR die('Please enable the Minion module for CLI support.');
set_exception_handler(array('Minion_Exception', 'handler'));
Minion_Task::factory(Minion_CLI::options())->execute();
}
else
{
/**
* Execute the main request. A source of the URI can be passed, eg: $_SERVER['PATH_INFO'].
* If no source is specified, the URI will be automatically detected.
*/
echo Request::factory($uri, array(), FALSE)
->execute()
->send_headers(TRUE)
->body();
}