/
_setup.php
125 lines (100 loc) · 4.93 KB
/
_setup.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
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT );
// КОНФИГУРАЦИЯ DEBUG РЕЖИМА
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') :
'production'));
if (APPLICATION_ENV === "development") {
$_SERVER["debug"] = array(
"report" => true,
"noCache" => array(
"php" => true,
"js" => true,
"css" => true,
),
"showNotices" => true,
"checkReverse" => false,
);
} else {
$_SERVER["debug"] = false;
}
$_SERVER["Auth"] = true;
if ($_REQUEST["level"] == 'update' || $_REQUEST["level"] == 'getdata') { //update лучше не выводить отладочный текст. как нить так отлажу
$_SERVER["debug"]["noCache"]["php"] = true;
$_SERVER["debug"]["report"] = false;
$_SERVER["Auth"] = false;
}
$_SERVER['SYSCACHE'] = $_SERVER['DOCUMENT_ROOT'] . '/tmp';
$_SERVER['CACHE'] = $_SERVER['DOCUMENT_ROOT'] . '/tmp';
// База данных
$_SERVER["mysql"] = array(
"lang" => array(
"host" => getenv('APPLICATION_DBHOST') ,
"base" => getenv('APPLICATION_DB') ,
"name" => getenv('APPLICATION_DBUSER') ,
"pass" => getenv('APPLICATION_DBPASS') ,
"log" => array(
"query" => true,
"notice" => true,
"warning" => true,
"error" => true,
),
"noCollation" => false,
"persistent" => true,
),
);
$_SERVER["storagebase"] = getenv('APPLICATION_DB2');
// Временная зона
date_default_timezone_set("Europe/Moscow");
// Кодировки
$_SERVER["Encoding"] = "UTF-8"; // HTML
$_SERVER["EncodingSQL"] = 'utf8'; // SQL
$_SERVER["EncodingCP"] = 'UTF-8'; //
$_SERVER["EncodingFS"] = "UTF-8"; // File system
// настройки файлового сервера
// на каком сервере файлы шарятся
define("NETBIOS_SERVERNAME", "pcbshop");
// коренвой катлог для share [z] и [t]
define("SHARE_ROOT_DIR", "/home/common/");
// каталог сохранения файлов относительно DOCUMENT_ROOT
define("UPLOAD_FILES_DIR", "/files/");
ob_start();
//правильно использовать автозагрузку следует с использованием библиотеки SPL
//Для этого нужно включить в include_path нужные нам пути
set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . // <editor-fold defaultstate="collapsed" desc="Длинный путь">
DIRECTORY_SEPARATOR// </editor-fold>
.'_engine/classes' . PATH_SEPARATOR . __DIR__ . DIRECTORY_SEPARATOR . 'classes' );
// потом зарегистрировать расширения
spl_autoload_extensions ('.php,.class.php');
// при правильном использовании namespace достаточно только (PSR-0 https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md)
spl_autoload_register();
// а так придестя зарегить функцию вслед за дефолтной
spl_autoload_register('Autoloader::loadPackages');
// сам класс 'Autoloader' описан по PSR-0
// очень внимательно файлы будут искаться в МАЛЕНЬКИМИ буквами autoloader.php - Это известный БАГ и скоро может быть пофиксен
/*
* Строки ниже есть в файле autoload
* НО с использованием SPL приишлось вставить сюда потому, что
* auttoload включался каждый раз, а теперь используется include_once
*/
if (!$_SERVER["debug"]["noCache"]["php"]) {
if(!empty($_SESSION["cache"]) && is_array($_SESSION["cache"])) {
require_once realpath($_SERVER['DOCUMENT_ROOT']) .
cache::buildScript($_SESSION["cache"], 'php');
}
}
// здесь уже определен автозагрузчик классов, я стал использовать новый смарти и ему бы установить каталог для готовых шаблонов
Output::getTemplateCompiler()->setCompileDir($_SERVER['DOCUMENT_ROOT'] . '/tmp');
ob_get_clean();
/*
* Делать хоть один инстанс нужно для включения скриптов в заголовки
*/
Lang::getInstance()->setLang('ru');
// перехватим ошибки
if ($_SERVER["debug"]["report"]) {
console::getInstance();//->out(print_r($_REQUEST, true));
profiler::add('Autoexec', 'Выполнение начальных установок');
}
?>