5 * Perform the full bootstrap.
7 * GOAL: All the standard services (database, DAOs, translations, settings, etc) should be loaded.
9 * MECHANICS: This basically calls `CRM_Core_Config::singleton(TRUE,TRUE)`.
11 * NOTE: This is technically a *reboot*. `Preboot` started things off, but it
12 * booted with `CRM_Core_Config::singleton($loadFromDB==FALSE)`. Now, the DB is
13 * populated, so we can teardown the preboot stuff and start again with `$loadFromDB==TRUE`.
16 if (!defined('CIVI_SETUP')) {
17 exit("Installation plugins must only be loaded by the installer.\n");
20 \Civi\Setup
::dispatcher()
21 ->addListener('civi.setup.installDatabase', function (\Civi\Setup\Event\InstallDatabaseEvent
$e) {
22 \Civi\Setup
::log()->info(sprintf('[%s] Bootstrap CiviCRM', basename(__FILE__
)));
24 \CRM_Core_I18n
::$SQL_ESCAPER = NULL;
25 unset(\Civi
::$statics['testPreInstall']);
27 CRM_Core_Config
::singleton(TRUE, TRUE);
29 }, \Civi\Setup
::PRIORITY_MAIN
- 200);