diff --git a/core/includes/install.inc b/core/includes/install.inc
index e0e86cc..95a08ca 100644
--- a/core/includes/install.inc
+++ b/core/includes/install.inc
@@ -993,7 +993,7 @@ function drupal_requirements_severity(&$requirements) {
  */
 function drupal_check_module($module) {
   module_load_install($module);
-  if (module_hook($module, 'requirements')) {
+  if (Drupal::moduleHandler()->implementsHook($module, 'requirements')) {
     // Check requirements
     $requirements = module_invoke($module, 'requirements', 'install');
     if (is_array($requirements) && drupal_requirements_severity($requirements) == REQUIREMENT_ERROR) {
diff --git a/core/lib/Drupal/Core/Extension/CachedModuleHandler.php b/core/lib/Drupal/Core/Extension/CachedModuleHandler.php
index 0e98472..7f43ba4 100644
--- a/core/lib/Drupal/Core/Extension/CachedModuleHandler.php
+++ b/core/lib/Drupal/Core/Extension/CachedModuleHandler.php
@@ -99,8 +99,8 @@ public function resetImplementations() {
     // $this->bootstrapCache->get() is more or less constant and reduced further when
     // non-database caching backends are used, so there will be more significant
     // gains when a large number of modules are installed or hooks invoked, since
-    // this can quickly lead to module_hook() being called several thousand times
-    // per request.
+    // this can quickly lead to Drupal::moduleHandler()->implementsHook() being
+    // called several thousand times per request.
     parent::resetImplementations();
     $this->bootstrapCache->set('module_implements', array());
     $this->bootstrapCache->delete('hook_info');
@@ -139,8 +139,8 @@ protected function getImplementationInfo($hook) {
         // It is possible that a module removed a hook implementation without the
         // implementations cache being rebuilt yet, so we check whether the
         // function exists on each request to avoid undefined function errors.
-        // Since module_hook() may needlessly try to load the include file again,
-        // function_exists() is used directly here.
+        // Since Drupal::moduleHandler()->implementsHook() may needlessly try to
+        // load the include file again, function_exists() is used directly here.
         if (!function_exists($module . '_' . $hook)) {
           // Clear out the stale implementation from the cache and force a cache
           // refresh to forget about no longer existing hook implementations.
diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index 92a2c45..63270c9 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -150,7 +150,7 @@ function field_help($path, $arg) {
       sort($modules);
       foreach ($modules as $module) {
         $display = $info[$module]['name'];
-        if (module_hook($module, 'help')) {
+        if (Drupal::moduleHandler()->implementsHook($module, 'help')) {
           $items['items'][] = l($display, 'admin/help/' . $module);
         }
         else {
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 45f19c7..a00ee57 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -2521,7 +2521,7 @@ function node_modules_disabled($modules) {
     // check whether a hook implementation function exists and do not invoke it.
     // Node access also needs to be rebuilt if language module is disabled to
     // remove any language-specific grants.
-    if (!node_access_needs_rebuild() && (module_hook($module, 'node_grants') || $module == 'language')) {
+    if (!node_access_needs_rebuild() && (Drupal::moduleHandler()->implementsHook($module, 'node_grants') || $module == 'language')) {
       node_access_needs_rebuild(TRUE);
     }
   }
diff --git a/core/modules/search/search.module b/core/modules/search/search.module
index fce4630..d628f35 100644
--- a/core/modules/search/search.module
+++ b/core/modules/search/search.module
@@ -1062,9 +1062,9 @@ function search_box_form_submit($form, &$form_state) {
  *   supplied or if the given search module is not active.
  */
 function search_data($keys, $module, $conditions = NULL) {
-  if (module_hook($module, 'search_execute')) {
+  if (Drupal::moduleHandler()->implementsHook($module, 'search_execute')) {
     $results = module_invoke($module, 'search_execute', $keys, $conditions);
-    if (module_hook($module, 'search_page')) {
+    if (Drupal::moduleHandler()->implementsHook($module, 'search_page')) {
       return module_invoke($module, 'search_page', $results);
     }
     else {
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index e771d4e..aac51e6 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -3167,7 +3167,7 @@ function system_get_module_admin_tasks($module, $info) {
   }
 
   // Append link for permissions.
-  if (module_hook($module, 'permission')) {
+  if (Drupal::moduleHandler()->implementsHook($module, 'permission')) {
     $item = menu_get_item('admin/people/permissions');
     if (!empty($item['access'])) {
       $item['link_path'] = $item['href'];
