From a0503e227816e3203d858ca80f659683b0d5b549 Mon Sep 17 00:00:00 2001 From: quietone <quietone@2572884.no-reply.drupal.org> Date: Wed, 15 Jan 2025 14:12:10 +1300 Subject: [PATCH] Issue #3498059 by mstrelan, shalini_jha, hetal.solanki: Add array return to all hook_requirements implementations --- core/.phpstan-baseline.php | 114 ------------------ core/lib/Drupal/Core/Extension/module.api.php | 2 +- core/modules/file/file.install | 2 +- core/modules/image/image.install | 2 +- core/modules/jsonapi/jsonapi.install | 2 +- .../layout_discovery/layout_discovery.install | 2 +- core/modules/locale/locale.install | 2 +- core/modules/media/media.install | 2 +- core/modules/mysql/mysql.install | 2 +- core/modules/navigation/navigation.install | 2 +- core/modules/node/node.install | 2 +- core/modules/pgsql/pgsql.install | 2 +- core/modules/search/search.install | 2 +- core/modules/system/system.install | 2 +- ...erimental_module_requirements_test.install | 2 +- .../requirements1_test.install | 2 +- .../update_script_test.install | 2 +- core/modules/update/update.install | 2 +- core/modules/workspaces/workspaces.install | 2 +- core/profiles/demo_umami/demo_umami.install | 2 +- .../testing_requirements.install | 2 +- 21 files changed, 20 insertions(+), 134 deletions(-) diff --git a/core/.phpstan-baseline.php b/core/.phpstan-baseline.php index 65d42970126e..97e91ff06578 100644 --- a/core/.phpstan-baseline.php +++ b/core/.phpstan-baseline.php @@ -19273,12 +19273,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/field_ui/tests/src/Unit/FieldUiTableTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function file_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/file/file.install', -]; $ignoreErrors[] = [ 'message' => '#^Function file_managed_file_submit\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -20881,12 +20875,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/history/tests/src/Functional/HistoryTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function image_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/image/image.install', -]; $ignoreErrors[] = [ 'message' => '#^Function image_path_flush\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -21571,12 +21559,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/inline_form_errors/src/RenderElementHelper.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function jsonapi_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/jsonapi/jsonapi.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\jsonapi\\\\Access\\\\EntityAccessChecker\\:\\:setLatestRevisionCheck\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -24679,12 +24661,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/layout_builder/tests/src/Unit/SectionTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function layout_discovery_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/layout_discovery/layout_discovery.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\layout_discovery\\\\Hook\\\\LayoutDiscoveryHooks\\:\\:help\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -24937,12 +24913,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/locale/locale.compare.inc', ]; -$ignoreErrors[] = [ - 'message' => '#^Function locale_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/locale/locale.install', -]; $ignoreErrors[] = [ 'message' => '#^Function _locale_parse_js_file\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -25753,12 +25723,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/locale/tests/src/Unit/Menu/LocaleLocalTasksTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function media_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/media/media.install', -]; $ignoreErrors[] = [ 'message' => '#^Variable \\$error in empty\\(\\) always exists and is not falsy\\.$#', 'identifier' => 'empty.variable', @@ -29473,12 +29437,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/migrate_drupal_ui/tests/src/FunctionalJavascript/SettingsTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function mysql_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/mysql/mysql.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\mysql\\\\Driver\\\\Database\\\\mysql\\\\Connection\\:\\:createDatabase\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -29605,12 +29563,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/navigation/modules/navigation_top_bar/src/Hook/NavigationTopBarHooks.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function navigation_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/navigation/navigation.install', -]; $ignoreErrors[] = [ 'message' => '#^Function navigation_post_update_set_logo_dimensions_default\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -29755,12 +29707,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/node/node.admin.inc', ]; -$ignoreErrors[] = [ - 'message' => '#^Function node_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/node/node.install', -]; $ignoreErrors[] = [ 'message' => '#^Function _node_access_rebuild_batch_finished\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -31699,12 +31645,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/path_alias/tests/src/Unit/AliasManagerTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function pgsql_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/pgsql/pgsql.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\pgsql\\\\Driver\\\\Database\\\\pgsql\\\\Connection\\:\\:addSavepoint\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -32695,12 +32635,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function search_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/search/search.install', -]; $ignoreErrors[] = [ 'message' => '#^Function search_theme_suggestions_search_result\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -35017,12 +34951,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/system/src/TimeZoneResolver.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function system_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/system/system.install', -]; $ignoreErrors[] = [ 'message' => '#^Variable \\$directories might not be defined\\.$#', 'identifier' => 'variable.undefined', @@ -37461,12 +37389,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/system/tests/modules/error_test/src/Controller/ErrorTestController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function experimental_module_requirements_test_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/system/tests/modules/experimental_module_requirements_test/experimental_module_requirements_test.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\experimental_module_requirements_test\\\\Hook\\\\ExperimentalModuleRequirementsTestHooks\\:\\:help\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -38547,12 +38469,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/system/tests/modules/render_placeholder_message_test/src/RenderPlaceholderMessageTestController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function requirements1_test_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/system/tests/modules/requirements1_test/requirements1_test.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\router_test\\\\RouteTestSubscriber\\:\\:alterRoutes\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -39171,12 +39087,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/system/tests/modules/update_script_test/src/Controller/UpdateScriptTestController.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function update_script_test_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/system/tests/modules/update_script_test/update_script_test.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\Tests\\\\system\\\\Functional\\\\Batch\\\\ProcessingTest\\:\\:_resultMessages\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -42555,12 +42465,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/update/update.fetch.inc', ]; -$ignoreErrors[] = [ - 'message' => '#^Function update_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/update/update.install', -]; $ignoreErrors[] = [ 'message' => '#^Function update_manager_batch_project_get\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -54459,18 +54363,6 @@ 'count' => 1, 'path' => __DIR__ . '/modules/workspaces/tests/src/Kernel/WorkspacesFileItemTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function workspaces_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/modules/workspaces/workspaces.install', -]; -$ignoreErrors[] = [ - 'message' => '#^Function demo_umami_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/profiles/demo_umami/demo_umami.install', -]; $ignoreErrors[] = [ 'message' => '#^Method Drupal\\\\demo_umami_content\\\\InstallHelper\\:\\:create\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', @@ -54651,12 +54543,6 @@ 'count' => 1, 'path' => __DIR__ . '/profiles/tests/testing/modules/drupal_system_listing_compatible_test/tests/src/Kernel/SystemListingCrossProfileCompatibleTest.php', ]; -$ignoreErrors[] = [ - 'message' => '#^Function testing_requirements_requirements\\(\\) has no return type specified\\.$#', - 'identifier' => 'missingType.return', - 'count' => 1, - 'path' => __DIR__ . '/profiles/tests/testing_requirements/testing_requirements.install', -]; $ignoreErrors[] = [ 'message' => '#^Function simpletest_script_execute_batch\\(\\) has no return type specified\\.$#', 'identifier' => 'missingType.return', diff --git a/core/lib/Drupal/Core/Extension/module.api.php b/core/lib/Drupal/Core/Extension/module.api.php index 3df937f4d19a..a30fc7a80d2c 100644 --- a/core/lib/Drupal/Core/Extension/module.api.php +++ b/core/lib/Drupal/Core/Extension/module.api.php @@ -1119,7 +1119,7 @@ function hook_updater_info_alter(&$updaters) { * - REQUIREMENT_ERROR: The requirement failed with an error. * Defaults to REQUIREMENT_OK when installing, REQUIREMENT_INFO otherwise. */ -function hook_requirements($phase) { +function hook_requirements($phase): array { $requirements = []; // Report Drupal version diff --git a/core/modules/file/file.install b/core/modules/file/file.install index 698cd5c404a4..bce27470f19d 100644 --- a/core/modules/file/file.install +++ b/core/modules/file/file.install @@ -62,7 +62,7 @@ function file_schema(): array { * * Display information about getting upload progress bars working. */ -function file_requirements($phase) { +function file_requirements($phase): array { $requirements = []; if ($phase != 'runtime') { diff --git a/core/modules/image/image.install b/core/modules/image/image.install index e23421795441..b99e17924ef6 100644 --- a/core/modules/image/image.install +++ b/core/modules/image/image.install @@ -35,7 +35,7 @@ function image_uninstall(): void { /** * Implements hook_requirements(). */ -function image_requirements($phase) { +function image_requirements($phase): array { if ($phase != 'runtime') { return []; } diff --git a/core/modules/jsonapi/jsonapi.install b/core/modules/jsonapi/jsonapi.install index 8db31414e1e4..c5a60c424fbe 100644 --- a/core/modules/jsonapi/jsonapi.install +++ b/core/modules/jsonapi/jsonapi.install @@ -30,7 +30,7 @@ function jsonapi_install(): void { /** * Implements hook_requirements(). */ -function jsonapi_requirements($phase) { +function jsonapi_requirements($phase): array { $requirements = []; if ($phase === 'runtime') { $module_handler = \Drupal::moduleHandler(); diff --git a/core/modules/layout_discovery/layout_discovery.install b/core/modules/layout_discovery/layout_discovery.install index e6c99e089bcf..28222bc093ba 100644 --- a/core/modules/layout_discovery/layout_discovery.install +++ b/core/modules/layout_discovery/layout_discovery.install @@ -8,7 +8,7 @@ /** * Implements hook_requirements(). */ -function layout_discovery_requirements($phase) { +function layout_discovery_requirements($phase): array { $requirements = []; if ($phase === 'install') { if (\Drupal::moduleHandler()->moduleExists('layout_plugin')) { diff --git a/core/modules/locale/locale.install b/core/modules/locale/locale.install index 774465e195b8..30aa89000b8a 100644 --- a/core/modules/locale/locale.install +++ b/core/modules/locale/locale.install @@ -14,7 +14,7 @@ /** * Implements hook_requirements(). */ -function locale_requirements($phase) { +function locale_requirements($phase): array { $requirements = []; if ($phase == 'runtime') { $available_updates = []; diff --git a/core/modules/media/media.install b/core/modules/media/media.install index db6e3563ad11..f0acbf482da4 100644 --- a/core/modules/media/media.install +++ b/core/modules/media/media.install @@ -18,7 +18,7 @@ /** * Implements hook_requirements(). */ -function media_requirements($phase) { +function media_requirements($phase): array { $requirements = []; if ($phase == 'install') { $destination = 'public://media-icons/generic'; diff --git a/core/modules/mysql/mysql.install b/core/modules/mysql/mysql.install index 6523af0e9dff..547f9cab1cd0 100644 --- a/core/modules/mysql/mysql.install +++ b/core/modules/mysql/mysql.install @@ -11,7 +11,7 @@ /** * Implements hook_requirements(). */ -function mysql_requirements($phase) { +function mysql_requirements($phase): array { $requirements = []; if ($phase === 'runtime') { diff --git a/core/modules/navigation/navigation.install b/core/modules/navigation/navigation.install index 72b843b23a28..f056735888c6 100644 --- a/core/modules/navigation/navigation.install +++ b/core/modules/navigation/navigation.install @@ -8,7 +8,7 @@ /** * Implements hook_requirements(). */ -function navigation_requirements($phase) { +function navigation_requirements($phase): array { $requirements = []; if ($phase === 'runtime') { diff --git a/core/modules/node/node.install b/core/modules/node/node.install index ddde78929ad5..d959f80dfcdf 100644 --- a/core/modules/node/node.install +++ b/core/modules/node/node.install @@ -12,7 +12,7 @@ /** * Implements hook_requirements(). */ -function node_requirements($phase) { +function node_requirements($phase): array { $requirements = []; if ($phase === 'runtime') { // Only show rebuild button if there are either 0, or 2 or more, rows diff --git a/core/modules/pgsql/pgsql.install b/core/modules/pgsql/pgsql.install index 881e871bff73..3adeb4f5dff3 100644 --- a/core/modules/pgsql/pgsql.install +++ b/core/modules/pgsql/pgsql.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function pgsql_requirements() { +function pgsql_requirements(): array { $requirements = []; // Test with PostgreSQL databases for the status of the pg_trgm extension. if (Database::isActiveConnection()) { diff --git a/core/modules/search/search.install b/core/modules/search/search.install index 2ca98bc1cfe0..8873e1fbbf99 100644 --- a/core/modules/search/search.install +++ b/core/modules/search/search.install @@ -128,7 +128,7 @@ function search_schema(): array { * * For the Status Report, return information about search index status. */ -function search_requirements($phase) { +function search_requirements($phase): array { $requirements = []; if ($phase == 'runtime') { diff --git a/core/modules/system/system.install b/core/modules/system/system.install index 54ff584efa54..28eeff954bcb 100644 --- a/core/modules/system/system.install +++ b/core/modules/system/system.install @@ -63,7 +63,7 @@ /** * Implements hook_requirements(). */ -function system_requirements($phase) { +function system_requirements($phase): array { global $install_state; // Get the current default PHP requirements for this version of Drupal. diff --git a/core/modules/system/tests/modules/experimental_module_requirements_test/experimental_module_requirements_test.install b/core/modules/system/tests/modules/experimental_module_requirements_test/experimental_module_requirements_test.install index 977ccac9f6c9..beaa3cd15b70 100644 --- a/core/modules/system/tests/modules/experimental_module_requirements_test/experimental_module_requirements_test.install +++ b/core/modules/system/tests/modules/experimental_module_requirements_test/experimental_module_requirements_test.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function experimental_module_requirements_test_requirements() { +function experimental_module_requirements_test_requirements(): array { $requirements = []; if (\Drupal::state()->get('experimental_module_requirements_test_requirements', FALSE)) { $requirements['experimental_module_requirements_test_requirements'] = [ diff --git a/core/modules/system/tests/modules/requirements1_test/requirements1_test.install b/core/modules/system/tests/modules/requirements1_test/requirements1_test.install index a578af75b42d..70767c16544d 100644 --- a/core/modules/system/tests/modules/requirements1_test/requirements1_test.install +++ b/core/modules/system/tests/modules/requirements1_test/requirements1_test.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function requirements1_test_requirements($phase) { +function requirements1_test_requirements($phase): array { $requirements = []; // Always fails requirements. diff --git a/core/modules/system/tests/modules/update_script_test/update_script_test.install b/core/modules/system/tests/modules/update_script_test/update_script_test.install index 7b03c2021cc8..5a641fd95644 100644 --- a/core/modules/system/tests/modules/update_script_test/update_script_test.install +++ b/core/modules/system/tests/modules/update_script_test/update_script_test.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function update_script_test_requirements($phase) { +function update_script_test_requirements($phase): array { $requirements = []; if ($phase == 'update') { diff --git a/core/modules/update/update.install b/core/modules/update/update.install index b9fb4d70e4e6..454a198c909e 100644 --- a/core/modules/update/update.install +++ b/core/modules/update/update.install @@ -33,7 +33,7 @@ * @see _update_cron_notify() * @see \Drupal\update\UpdateManagerInterface */ -function update_requirements($phase) { +function update_requirements($phase): array { $requirements = []; if ($phase == 'runtime') { if ($available = update_get_available(FALSE)) { diff --git a/core/modules/workspaces/workspaces.install b/core/modules/workspaces/workspaces.install index 6dfb3312fb89..a798b4a2c22b 100644 --- a/core/modules/workspaces/workspaces.install +++ b/core/modules/workspaces/workspaces.install @@ -11,7 +11,7 @@ /** * Implements hook_requirements(). */ -function workspaces_requirements($phase) { +function workspaces_requirements($phase): array { $requirements = []; if ($phase === 'install') { if (\Drupal::moduleHandler()->moduleExists('workspace')) { diff --git a/core/profiles/demo_umami/demo_umami.install b/core/profiles/demo_umami/demo_umami.install index 1e305aec7239..a9f04bf0c1bb 100644 --- a/core/profiles/demo_umami/demo_umami.install +++ b/core/profiles/demo_umami/demo_umami.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function demo_umami_requirements($phase) { +function demo_umami_requirements($phase): array { $requirements = []; if ($phase == 'runtime') { $profile = \Drupal::installProfile(); diff --git a/core/profiles/tests/testing_requirements/testing_requirements.install b/core/profiles/tests/testing_requirements/testing_requirements.install index 02ee31d47216..7cdb44d9d299 100644 --- a/core/profiles/tests/testing_requirements/testing_requirements.install +++ b/core/profiles/tests/testing_requirements/testing_requirements.install @@ -10,7 +10,7 @@ /** * Implements hook_requirements(). */ -function testing_requirements_requirements($phase) { +function testing_requirements_requirements($phase): array { $requirements = []; if ($phase === 'install') { -- GitLab