From 4e54392e568290351ea36dcad5b41f1698f7849d Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Fri, 17 Sep 2021 14:16:54 +0100
Subject: [PATCH] Issue #3232691 by alexpott, longwave: Refactor
 \Drupal\Core\Ajax\AjaxHelperTrait to not cause deprecations in PHP 8.1

---
 composer.lock                                 |  4 +++-
 core/composer.json                            |  1 +
 core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php | 14 ++++++--------
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/composer.lock b/composer.lock
index c47fbee1c22e..00ed91a33802 100644
--- a/composer.lock
+++ b/composer.lock
@@ -535,7 +535,7 @@
             "dist": {
                 "type": "path",
                 "url": "core",
-                "reference": "107b1d4f65408eb2844facd227005517de15343b"
+                "reference": "833c40df380059ecff9e327223e066ac3a41c328"
             },
             "require": {
                 "asm89/stack-cors": "^1.1",
@@ -572,6 +572,7 @@
                 "symfony/http-kernel": "^4.4",
                 "symfony/mime": "^5.3.0",
                 "symfony/polyfill-iconv": "^1.0",
+                "symfony/polyfill-php80": "^1.16",
                 "symfony/process": "^4.4",
                 "symfony/psr-http-message-bridge": "^2.0",
                 "symfony/routing": "^4.4",
@@ -6962,6 +6963,7 @@
                     "type": "github"
                 }
             ],
+            "abandoned": true,
             "time": "2020-11-30T07:30:19+00:00"
         },
         {
diff --git a/core/composer.json b/core/composer.json
index 17365aabdb0e..aa852411ecf2 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -30,6 +30,7 @@
         "symfony/validator": "^4.4",
         "symfony/process": "^4.4",
         "symfony/polyfill-iconv": "^1.0",
+        "symfony/polyfill-php80": "^1.16",
         "symfony/yaml": "^4.4.19",
         "typo3/phar-stream-wrapper": "^3.1.3",
         "twig/twig": "^2.12.0",
diff --git a/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php b/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
index 287abae3212a..534a2c95c166 100644
--- a/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
+++ b/core/lib/Drupal/Core/Ajax/AjaxHelperTrait.php
@@ -18,19 +18,17 @@ trait AjaxHelperTrait {
    *   TRUE if the current request is via AJAX, FALSE otherwise.
    */
   protected function isAjax() {
-    foreach (['drupal_ajax', 'drupal_modal', 'drupal_dialog'] as $wrapper) {
-      if (strpos($this->getRequestWrapperFormat(), $wrapper) !== FALSE) {
-        return TRUE;
-      }
-    }
-    return FALSE;
+    $wrapper_format = $this->getRequestWrapperFormat() ?? '';
+    return str_contains($wrapper_format, 'drupal_ajax') ||
+      str_contains($wrapper_format, 'drupal_modal') ||
+      str_contains($wrapper_format, 'drupal_dialog');
   }
 
   /**
    * Gets the wrapper format of the current request.
    *
-   * @string
-   *   The wrapper format.
+   * @return string|null
+   *   The wrapper format. NULL if the wrapper format is not set.
    */
   protected function getRequestWrapperFormat() {
     return \Drupal::request()->get(MainContentViewSubscriber::WRAPPER_FORMAT);
-- 
GitLab