/** * @param string $extension * @param bool $install * * @see module_enable() */ private function enableModule($extension, $install) { $filename = $this->drupalGetFilename->drupalGetFilename('module', $extension); // Include module files. require_once $filename; if (file_exists($install_file = dirname($filename) . '/' . $extension . '.install')) { require_once $install_file; } // Update status in system table $this->systemTable->moduleSetEnabled($extension); // Clear various caches, especially hook_module_implements() $this->systemListReset->systemListReset(); $this->moduleList->moduleList(TRUE); $this->hookSystem->moduleImplementsReset(); $this->systemUpdateBootstrapStatus->systemUpdateBootstrapStatus(); // Update the registry to include it. # registry_update(); // Refresh the schema to include it. # drupal_get_schema(NULL, TRUE); // Update the theme registry to include it. # drupal_theme_rebuild(); // Clear entity cache. # entity_info_cache_clear(); if ($install) { PureFunctions::moduleInvoke($extension, 'schema'); $this->systemTable->moduleSetSchemaVersion($extension, 7000); PureFunctions::moduleInvoke($extension, 'update_last_removed'); // Optional hook_install().. PureFunctions::moduleInvoke($extension, 'install'); // Optional watchdog() $this->hookSystem->moduleInvokeAll('watchdog'); } // hook_enable() PureFunctions::moduleInvoke($extension, 'enable'); // watchdog() $this->hookSystem->moduleInvokeAll('watchdog'); }