addListener('civi.setup.checkRequirements', function (\Civi\Setup\Event\CheckRequirementsEvent $e) { }); \Civi\Setup::dispatcher() ->addListener('civi.setup.installDatabase', function (\Civi\Setup\Event\InstallDatabaseEvent $e) { \Civi\Setup::log()->info(sprintf('[%s] Load minimal (non-DB) services', basename(__FILE__))); if (!defined('CIVICRM_SETTINGS_PATH')) { define('CIVICRM_SETTINGS_PATH', $e->getModel()->settingsPath); } if (realpath(CIVICRM_SETTINGS_PATH) !== realpath($e->getModel()->settingsPath)) { throw new \RuntimeException(sprintf("Cannot boot: The civicrm.settings.php path appears inconsistent (%s vs %s)", CIVICRM_SETTINGS_PATH, $e->getModel()->settingsPath)); } include_once CIVICRM_SETTINGS_PATH; require_once 'CRM/Core/ClassLoader.php'; CRM_Core_ClassLoader::singleton()->register(); $conn = \Civi\Setup\DbUtil::connect($e->getModel()->db); \CRM_Core_I18n::$SQL_ESCAPER = function($text) use ($conn) { return $conn->escape_string($text); }; \Civi::$statics['testPreInstall'] = 1; CRM_Core_Config::singleton(FALSE, TRUE); }, \Civi\Setup::PRIORITY_PREPARE);