standalone_bootstrap.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. //Do not continue running this bootstrap if PHPUnit is calling it
  7. $fullTrace = debug_backtrace();
  8. $rootFile = array_values(array_slice($fullTrace, -1))[0]['file'];
  9. if (strpos($rootFile, "phpunit") !== false) {
  10. return;
  11. }
  12. defined('PROJECT_ROOT') || define('PROJECT_ROOT', dirname(dirname(dirname(__DIR__))));
  13. require_once realpath(PROJECT_ROOT . '/vendor/autoload.php');
  14. //Load constants from .env file
  15. $envFilePath = dirname(dirname(__DIR__));
  16. if (file_exists($envFilePath . DIRECTORY_SEPARATOR . '.env')) {
  17. $env = new \Dotenv\Loader($envFilePath . DIRECTORY_SEPARATOR . '.env');
  18. $env->load();
  19. foreach ($_ENV as $key => $var) {
  20. defined($key) || define($key, $var);
  21. }
  22. if (array_key_exists('MAGENTO_BP', $_ENV)) {
  23. // TODO REMOVE THIS CODE ONCE WE HAVE STOPPED SUPPORTING dev/tests/acceptance PATH
  24. // define TEST_PATH and TEST_MODULE_PATH
  25. defined('TESTS_BP') || define('TESTS_BP', dirname(dirname(__DIR__)));
  26. $RELATIVE_TESTS_MODULE_PATH = '/tests/functional/tests/MFTF';
  27. defined('TESTS_MODULE_PATH') || define(
  28. 'TESTS_MODULE_PATH',
  29. realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH)
  30. );
  31. }
  32. defined('MAGENTO_CLI_COMMAND_PATH') || define(
  33. 'MAGENTO_CLI_COMMAND_PATH',
  34. 'dev/tests/acceptance/utils/command.php'
  35. );
  36. $env->setEnvironmentVariable('MAGENTO_CLI_COMMAND_PATH', MAGENTO_CLI_COMMAND_PATH);
  37. defined('MAGENTO_CLI_COMMAND_PARAMETER') || define('MAGENTO_CLI_COMMAND_PARAMETER', 'command');
  38. $env->setEnvironmentVariable('MAGENTO_CLI_COMMAND_PARAMETER', MAGENTO_CLI_COMMAND_PARAMETER);
  39. defined('DEFAULT_TIMEZONE') || define('DEFAULT_TIMEZONE', 'America/Los_Angeles');
  40. $env->setEnvironmentVariable('DEFAULT_TIMEZONE', DEFAULT_TIMEZONE);
  41. try {
  42. new DateTimeZone(DEFAULT_TIMEZONE);
  43. } catch (\Exception $e) {
  44. throw new \Exception("Invalid DEFAULT_TIMEZONE in .env: " . DEFAULT_TIMEZONE . PHP_EOL);
  45. }
  46. }
  47. defined('FW_BP') || define('FW_BP', PROJECT_ROOT);
  48. defined('MAGENTO_BP') || define('MAGENTO_BP', PROJECT_ROOT);
  49. defined('TESTS_BP') || define('TESTS_BP', dirname(dirname(__DIR__)));
  50. $RELATIVE_TESTS_MODULE_PATH = '/tests/functional/tests/MFTF';
  51. defined('TESTS_MODULE_PATH') || define('TESTS_MODULE_PATH', realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH));
  52. // add the debug flag here
  53. $debug_mode = $_ENV['MFTF_DEBUG'] ?? false;
  54. if (!(bool)$debug_mode && extension_loaded('xdebug')) {
  55. xdebug_disable();
  56. }