暂无描述

mailpoet_initializer.php 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. if (!defined('ABSPATH')) exit;
  3. use MailPoet\Config\Env;
  4. use MailPoet\Config\RequirementsChecker;
  5. use Tracy\Debugger;
  6. if (empty($mailpoetPlugin)) exit;
  7. require_once($mailpoetPlugin['autoloader']);
  8. // setup Tracy Debugger in dev mode and only for PHP version > 7.1
  9. $tracyPath = __DIR__ . '/tools/vendor/tracy.phar';
  10. if (WP_DEBUG && PHP_VERSION_ID >= 70100 && file_exists($tracyPath)) {
  11. require_once $tracyPath;
  12. if (getenv('MAILPOET_TRACY_PRODUCTION_MODE')) {
  13. $logDir = getenv('MAILPOET_TRACY_LOG_DIR');
  14. if (!$logDir) {
  15. throw new RuntimeException("Environment variable 'MAILPOET_TRACY_LOG_DIR' was not set.");
  16. }
  17. if (!is_dir($logDir)) {
  18. @mkdir($logDir, 0777, true);
  19. }
  20. if (!is_writable($logDir)) {
  21. throw new RuntimeException("Logging directory '$logDir' is not writable.'");
  22. }
  23. Debugger::enable(Debugger::PRODUCTION, $logDir);
  24. Debugger::$logSeverity = E_ALL;
  25. } else {
  26. function render_tracy() {
  27. ob_start();
  28. Debugger::renderLoader();
  29. $tracyScriptHtml = ob_get_clean();
  30. // strip 'async' to ensure all AJAX request are caught
  31. // (even when fired immediately after page starts loading)
  32. // see: https://github.com/nette/tracy/issues/246
  33. $tracyScriptHtml = str_replace('async', '', $tracyScriptHtml);
  34. // set higher number of displayed AJAX rows
  35. $maxAjaxRows = 4;
  36. $tracyScriptHtml .= "<script>window.TracyMaxAjaxRows = $maxAjaxRows;</script>\n";
  37. echo $tracyScriptHtml;
  38. }
  39. add_action('admin_enqueue_scripts', 'render_tracy', PHP_INT_MAX, 0);
  40. session_start();
  41. Debugger::enable(Debugger::DEVELOPMENT);
  42. }
  43. }
  44. define('MAILPOET_VERSION', $mailpoetPlugin['version']);
  45. Env::init(
  46. $mailpoetPlugin['filename'],
  47. $mailpoetPlugin['version'],
  48. DB_HOST,
  49. DB_USER,
  50. DB_PASSWORD,
  51. DB_NAME
  52. );
  53. $requirements = new RequirementsChecker();
  54. $requirementsCheckResults = $requirements->checkAllRequirements();
  55. if (!$requirementsCheckResults[RequirementsChecker::TEST_PDO_EXTENSION] ||
  56. !$requirementsCheckResults[RequirementsChecker::TEST_VENDOR_SOURCE]
  57. ) {
  58. return;
  59. }
  60. // Ensure functions like get_plugins, etc.
  61. require_once(ABSPATH . 'wp-admin/includes/plugin.php');
  62. $initializer = MailPoet\DI\ContainerWrapper::getInstance()->get(MailPoet\Config\Initializer::class);
  63. $initializer->init();