forked from skeeks-cms/cms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglobal.php
95 lines (80 loc) · 4.3 KB
/
global.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
<?php
/**
* Определение глобальных констант
*
* @author Semenov Alexander <[email protected]>
* @link http://skeeks.com/
* @copyright 2010-2014 SkeekS (Sx)
* @date 20.02.2015
* @since 1.0.0
*/
/**
* Перечень необязательных констант, если их не определить они будут определены по ходу выполнения проекта.
* Ниже закомментированы их значения по умолчанию
*/
//define('YII_ENV', 'dev'); //Необязательная константа, если не будет определена, то определение произойдет по ходу выполнения проекта
//define('YII_DEBUG', true); //Необязательная константа, если не будет определена, то определение произойдет по ходу выполнения проекта
//define("COMMON_CONFIG_DIR", ROOT_DIR . '/common/config'); //Общие конфиги
//define("VENDOR_DIR", ROOT_DIR . '/vendor'); //Вендоры
/**
* Будут определены по ходу выполенения кода
* COMMON_ENV_CONFIG_DIR //Дирриктория с конфигами common для текущего окружения
* APP_ENV_CONFIG_DIR //Дирриктория с конфигами текущего приложения для текущего окружения
*/
//Корень запущеного приложения
defined('APP_CONFIG_DIR') or die('Please specify the constant "APP_CONFIG_DIR" in index.php in your application.');
//Корень проекта
defined('ROOT_DIR') or die('Please specify the constant "ROOT_DIR" in index.php in your application.');
defined('VENDOR_DIR') or define('VENDOR_DIR', ROOT_DIR . '/vendor');
defined('COMMON_CONFIG_DIR') or define('COMMON_CONFIG_DIR', ROOT_DIR . '/common/config');
define("TMP_CONFIG_FILE_EXTENSIONS", VENDOR_DIR . '/skeeks/tmp-config-extensions.php' );
define("TMP_CONSOLE_CONFIG_FILE_EXTENSIONS", VENDOR_DIR . '/skeeks/tmp-console-config-extensions.php' );
/**
* Глобальный файл где задается настройка окружения.
* Если файла не будет создано, то окружение будет считано функцией getenv() или по другому прниципу
*/
defined('APP_ENV_GLOBAL_FILE') or define('APP_ENV_GLOBAL_FILE', ROOT_DIR . '/global.php');
//Проверка файла который создается скриптом в момент установки проекта, если он создан, то прочитаются его настройки.
$globalFileInited = APP_ENV_GLOBAL_FILE;
if (file_exists($globalFileInited))
{
require $globalFileInited;
}
//Если Yii окружение не определено раньше в index.php или @app/config/global.php
if (!defined('YII_ENV'))
{
define('YII_ENV', 'dev');
}
define('COMMON_ENV_CONFIG_DIR', COMMON_CONFIG_DIR . '/env/' . YII_ENV);
define('APP_ENV_CONFIG_DIR', APP_CONFIG_DIR . '/env/' . YII_ENV);
//Здесь уже определена константа YII_ENV, на нее можно опираться
if (!defined('YII_DEBUG'))
{
//Пытаемся подключить global.php для нужного окружения, общего приложения
$envGlobal = COMMON_ENV_CONFIG_DIR . '/global.php';
if (file_exists($envGlobal))
{
include $envGlobal;
}
}
if (!defined('YII_DEBUG'))
{
//Пытаемся подключить global.php для нужного окружения, общего приложения
$envGlobal = COMMON_CONFIG_DIR . '/global.php';
if (file_exists($envGlobal))
{
include $envGlobal;
}
}
//А мы все равно ее определим
if (!defined('YII_DEBUG'))
{
//TODO: можно вынести в еще одну константу, типо для каких окружений включить или отключать дебаг.
if (YII_ENV == 'prod')
{
defined('YII_DEBUG') or define('YII_DEBUG', false);
} else
{
defined('YII_DEBUG') or define('YII_DEBUG', true);
}
}