/
bootstrap.php
119 lines (99 loc) · 3.02 KB
/
bootstrap.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
<?php
use Cake\Datasource\ConnectionManager;
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
if (!defined('WINDOWS')) {
if (DS === '\\' || substr(PHP_OS, 0, 3) === 'WIN') {
define('WINDOWS', true);
} else {
define('WINDOWS', false);
}
}
define('ROOT', dirname(__DIR__));
define('TMP', ROOT . DS . 'tmp' . DS);
define('LOGS', TMP . 'logs' . DS);
define('CACHE', TMP . 'cache' . DS);
define('APP', sys_get_temp_dir());
define('APP_DIR', 'src');
define('CAKE_CORE_INCLUDE_PATH', ROOT . '/vendor/cakephp/cakephp');
define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
define('CAKE', CORE_PATH . APP_DIR . DS);
define('WWW_ROOT', ROOT . DS . 'webroot' . DS);
define('CONFIG', dirname(__FILE__) . DS . 'config' . DS);
ini_set('intl.default_locale', 'de-DE');
require ROOT . '/vendor/autoload.php';
require CORE_PATH . 'config/bootstrap.php';
Cake\Core\Configure::write('App', [
'namespace' => 'App',
'encoding' => 'UTF-8',
'fullBaseUrl' => '/',
]);
Cake\Core\Configure::write('debug', true);
Cake\Core\Configure::write('Config', [
'adminEmail' => 'test@example.com',
'adminName' => 'Mark'
]);
Cake\Mailer\Email::setConfig('default', ['transport' => 'Debug']);
Cake\Mailer\TransportFactory::setConfig('Debug', [
'className' => 'Debug'
]);
mb_internal_encoding('UTF-8');
$Tmp = new Cake\Filesystem\Folder(TMP);
$Tmp->create(TMP . 'cache/models', 0770);
$Tmp->create(TMP . 'cache/persistent', 0770);
$Tmp->create(TMP . 'cache/views', 0770);
$cache = [
'default' => [
'engine' => 'File',
'path' => CACHE
],
'_cake_core_' => [
'className' => 'File',
'prefix' => 'crud_myapp_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+10 seconds'
],
'_cake_model_' => [
'className' => 'File',
'prefix' => 'crud_my_app_cake_model_',
'path' => CACHE . 'models/',
'serialize' => 'File',
'duration' => '+10 seconds'
]
];
Cake\Cache\Cache::setConfig($cache);
Cake\Utility\Security::setSalt('foo');
// Why is this required?
require ROOT . DS . 'config' . DS . 'bootstrap.php';
//Cake\Core\Plugin::load('Tools', ['path' => ROOT . DS, 'bootstrap' => true]);
(new Cake\Core\PluginCollection)->add(new Tools\Plugin());
if (getenv('db_dsn')) {
ConnectionManager::setConfig('test', [
'className' => 'Cake\Database\Connection',
'url' => getenv('db_dsn'),
'timezone' => 'UTC',
'quoteIdentifiers' => true,
'cacheMetadata' => true,
]);
return;
}
// Ensure default test connection is defined
if (!getenv('db_class')) {
putenv('db_class=Cake\Database\Driver\Sqlite');
putenv('db_dsn=sqlite::memory:');
//putenv('db_class=Cake\Database\Driver\Postgres');
//putenv('db_dsn=postgres://postgres@127.0.0.1/test');
}
Cake\Datasource\ConnectionManager::setConfig('test', [
'className' => 'Cake\Database\Connection',
'driver' => getenv('db_class') ?: null,
'dsn' => getenv('db_dsn') ?: null,
'database' => getenv('db_database') ?: null,
'username' => getenv('db_username') ?: null,
'password' => getenv('db_password') ?: null,
'timezone' => 'UTC',
'quoteIdentifiers' => true,
'cacheMetadata' => true,
]);