From 5ce8edeafa550a9d371a606cfb1e7d5fdbee6e4c Mon Sep 17 00:00:00 2001
From: Dave Long <dave@longwaveconsulting.com>
Date: Wed, 7 Feb 2024 23:59:46 +0000
Subject: [PATCH] Issue #3419356 by taraskorpach, acbramley: Use constructor
 property promotion on $serializer in Drupal\Core\Cache\DatabaseBackend

---
 .../lib/Drupal/Core/Cache/DatabaseBackend.php | 20 ++++++-------------
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/core/lib/Drupal/Core/Cache/DatabaseBackend.php b/core/lib/Drupal/Core/Cache/DatabaseBackend.php
index be8cf52e3ad1..13103c1664c1 100644
--- a/core/lib/Drupal/Core/Cache/DatabaseBackend.php
+++ b/core/lib/Drupal/Core/Cache/DatabaseBackend.php
@@ -67,13 +67,6 @@ class DatabaseBackend implements CacheBackendInterface {
    */
   protected $checksumProvider;
 
-  /**
-   * The serializer to use.
-   *
-   * @var \Drupal\Component\Serialization\ObjectAwareSerializationInterface
-   */
-  protected ObjectAwareSerializationInterface $serializer;
-
   /**
    * Constructs a DatabaseBackend object.
    *
@@ -93,7 +86,7 @@ public function __construct(
     Connection $connection,
     CacheTagsChecksumInterface $checksum_provider,
     $bin,
-    ObjectAwareSerializationInterface|int|string|null $serializer = NULL,
+    protected ObjectAwareSerializationInterface|int|string|null $serializer = NULL,
     $max_rows = NULL,
   ) {
     // All cache tables should be prefixed with 'cache_'.
@@ -102,16 +95,15 @@ public function __construct(
     $this->bin = $bin;
     $this->connection = $connection;
     $this->checksumProvider = $checksum_provider;
-    if (is_int($serializer) || is_string($serializer)) {
+    if (is_int($this->serializer) || is_string($this->serializer)) {
       @trigger_error('Calling ' . __METHOD__ . ' with the $max_rows as 3rd argument is deprecated in drupal:10.3.0 and it will be the 4th argument in drupal:11.0.0. See https://www.drupal.org/node/3014684', E_USER_DEPRECATED);
-      $max_rows = $serializer;
-      $serializer = \Drupal::service('serialization.phpserialize');
+      $max_rows = $this->serializer;
+      $this->serializer = \Drupal::service('serialization.phpserialize');
     }
-    elseif ($serializer === NULL) {
+    elseif ($this->serializer === NULL) {
       @trigger_error('Calling ' . __METHOD__ . ' without the $serializer argument is deprecated in drupal:10.3.0 and it will be required in drupal:11.0.0. See https://www.drupal.org/node/3014684', E_USER_DEPRECATED);
-      $serializer = \Drupal::service('serialization.phpserialize');
+      $this->serializer = \Drupal::service('serialization.phpserialize');
     }
-    $this->serializer = $serializer;
     $this->maxRows = $max_rows === NULL ? static::DEFAULT_MAX_ROWS : $max_rows;
   }
 
-- 
GitLab