bootstrap.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. require ROOT . '/vendor/cakephp/cakephp/src/basics.php';
  13. require ROOT . '/vendor/autoload.php';
  14. Cake\Core\Configure::write('App', ['namespace' => 'App']);
  15. $Tmp = new \Cake\Utility\Folder(TMP);
  16. $Tmp->create(TMP . 'cache/models', 0770);
  17. $Tmp->create(TMP . 'cache/persistent', 0770);
  18. $Tmp->create(TMP . 'cache/views', 0770);
  19. $cache = [
  20. 'default' => [
  21. 'engine' => 'File'
  22. ],
  23. '_cake_core_' => [
  24. 'className' => 'File',
  25. 'prefix' => 'crud_myapp_cake_core_',
  26. 'path' => CACHE . 'persistent/',
  27. 'serialize' => true,
  28. 'duration' => '+10 seconds'
  29. ],
  30. '_cake_model_' => [
  31. 'className' => 'File',
  32. 'prefix' => 'crud_my_app_cake_model_',
  33. 'path' => CACHE . 'models/',
  34. 'serialize' => 'File',
  35. 'duration' => '+10 seconds'
  36. ]
  37. ];
  38. Cake\Cache\Cache::config($cache);
  39. Cake\Core\Plugin::load('Tools', ['path' => './']);
  40. // Ensure default test connection is defined
  41. if (!getenv('db_class')) {
  42. putenv('db_class=Cake\Database\Driver\Sqlite');
  43. putenv('db_dsn=sqlite::memory:');
  44. }
  45. Cake\Datasource\ConnectionManager::config('test', [
  46. 'className' => 'Cake\Database\Connection',
  47. 'driver' => getenv('db_class'),
  48. 'dsn' => getenv('db_dsn'),
  49. 'database' => getenv('db_database'),
  50. 'login' => getenv('db_login'),
  51. 'password' => getenv('db_password'),
  52. 'timezone' => 'UTC',
  53. 'quoteIdentifiers' => true,
  54. 'cacheMetadata' => true,
  55. ]);