bootstrap.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. define('DS', DIRECTORY_SEPARATOR);
  3. define('ROOT', dirname(__DIR__));
  4. define('TMP', ROOT . DS . 'tmp' . DS);
  5. define('LOGS', TMP . 'logs' . DS);
  6. define('CACHE', TMP . 'cache' . DS);
  7. define('APP', sys_get_temp_dir());
  8. define('APP_DIR', 'src');
  9. define('CAKE_CORE_INCLUDE_PATH', ROOT . '/vendor/cakephp/cakephp');
  10. define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
  11. define('CAKE', CORE_PATH . APP_DIR . DS);
  12. define('WWW_ROOT', ROOT . DS . 'webroot' . DS);
  13. define('CONFIG', dirname(__FILE__) . DS . 'config' . DS);
  14. ini_set('intl.default_locale', 'de-DE');
  15. require ROOT . '/vendor/cakephp/cakephp/src/basics.php';
  16. require ROOT . '/vendor/autoload.php';
  17. require CAKE . 'Core/ClassLoader.php';
  18. $loader = new Cake\Core\ClassLoader;
  19. $loader->register();
  20. $loader->addNamespace('TestApp', ROOT . DS . 'tests' . DS . 'TestApp' . DS);
  21. Cake\Core\Configure::write('App', [
  22. 'namespace' => 'App',
  23. 'encoding' => 'UTF-8']);
  24. Cake\Core\Configure::write('debug', true);
  25. Cake\Core\Configure::write('Config', [
  26. 'adminEmail' => 'test@example.com',
  27. 'adminName' => 'Mark']);
  28. Cake\Network\Email\Email::config('default', array('transport' => 'Debug'));
  29. Cake\Network\Email\Email::configTransport('Debug', [
  30. 'className' => 'Debug'
  31. ]);
  32. mb_internal_encoding('UTF-8');
  33. $Tmp = new Cake\Filesystem\Folder(TMP);
  34. $Tmp->create(TMP . 'cache/models', 0770);
  35. $Tmp->create(TMP . 'cache/persistent', 0770);
  36. $Tmp->create(TMP . 'cache/views', 0770);
  37. $cache = [
  38. 'default' => [
  39. 'engine' => 'File'
  40. ],
  41. '_cake_core_' => [
  42. 'className' => 'File',
  43. 'prefix' => 'crud_myapp_cake_core_',
  44. 'path' => CACHE . 'persistent/',
  45. 'serialize' => true,
  46. 'duration' => '+10 seconds'
  47. ],
  48. '_cake_model_' => [
  49. 'className' => 'File',
  50. 'prefix' => 'crud_my_app_cake_model_',
  51. 'path' => CACHE . 'models/',
  52. 'serialize' => 'File',
  53. 'duration' => '+10 seconds'
  54. ]
  55. ];
  56. Cake\Cache\Cache::config($cache);
  57. Cake\Core\Plugin::load('Tools', ['path' => ROOT . DS, 'bootstrap' => true]);
  58. // Ensure default test connection is defined
  59. if (!getenv('db_class')) {
  60. putenv('db_class=Cake\Database\Driver\Sqlite');
  61. putenv('db_dsn=sqlite::memory:');
  62. }
  63. Cake\Datasource\ConnectionManager::config('test', [
  64. 'className' => 'Cake\Database\Connection',
  65. 'driver' => getenv('db_class'),
  66. 'dsn' => getenv('db_dsn'),
  67. 'database' => getenv('db_database'),
  68. 'username' => getenv('db_username'),
  69. 'password' => getenv('db_password'),
  70. 'timezone' => 'UTC',
  71. 'quoteIdentifiers' => true,
  72. 'cacheMetadata' => true,
  73. ]);