From 09a5ff9f5cfeed3f6c69297c563ab7570448044d Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Wed, 15 Feb 2023 14:39:55 +0000
Subject: [PATCH] Issue #3138595 by jungle, Kumar Kundan, markdorison,
 kkalashnikov, ankitsingh0188, mrinalini9, walangitan, _utsavsharma,
 himanshu_sindhwani, atul4drupal, smustgrave, xjm, alexpott, daffie: Replace
 method names that use writeable with writable

---
 .../Component/PhpStorage/FileReadOnlyStorage.php   |  8 ++++++++
 .../Drupal/Component/PhpStorage/FileStorage.php    |  8 ++++++++
 .../Component/PhpStorage/PhpStorageInterface.php   | 14 ++++++++++++++
 .../PhpStorage/FileStorageReadOnlyTest.php         |  7 ++++++-
 .../Tests/Component/PhpStorage/FileStorageTest.php |  7 +++++--
 5 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/core/lib/Drupal/Component/PhpStorage/FileReadOnlyStorage.php b/core/lib/Drupal/Component/PhpStorage/FileReadOnlyStorage.php
index 1fb2f217f4d9..87bbf2eb960c 100644
--- a/core/lib/Drupal/Component/PhpStorage/FileReadOnlyStorage.php
+++ b/core/lib/Drupal/Component/PhpStorage/FileReadOnlyStorage.php
@@ -65,10 +65,18 @@ public function getFullPath($name) {
     return $this->directory . '/' . $name;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function writable() {
+    return FALSE;
+  }
+
   /**
    * {@inheritdoc}
    */
   public function writeable() {
+    @trigger_error(__METHOD__ . '() is deprecated in drupal:10.1.0 and will be removed from drupal:11.0.0. Use \Drupal\Component\PhpStorage\FileReadOnlyStorage::writable() instead. See https://www.drupal.org/node/3155413', E_USER_DEPRECATED);
     return FALSE;
   }
 
diff --git a/core/lib/Drupal/Component/PhpStorage/FileStorage.php b/core/lib/Drupal/Component/PhpStorage/FileStorage.php
index 704ae0067224..fc377f0a82de 100644
--- a/core/lib/Drupal/Component/PhpStorage/FileStorage.php
+++ b/core/lib/Drupal/Component/PhpStorage/FileStorage.php
@@ -144,10 +144,18 @@ public function getFullPath($name) {
     return $this->directory . '/' . $name;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function writable() {
+    return TRUE;
+  }
+
   /**
    * {@inheritdoc}
    */
   public function writeable() {
+    @trigger_error(__METHOD__ . '() is deprecated in drupal:10.1.0 and will be removed from drupal:11.0.0. Use \Drupal\Component\PhpStorage\FileStorage::writable() instead. See https://www.drupal.org/node/3155413', E_USER_DEPRECATED);
     return TRUE;
   }
 
diff --git a/core/lib/Drupal/Component/PhpStorage/PhpStorageInterface.php b/core/lib/Drupal/Component/PhpStorage/PhpStorageInterface.php
index 7a370d252ace..097f2d6747bb 100644
--- a/core/lib/Drupal/Component/PhpStorage/PhpStorageInterface.php
+++ b/core/lib/Drupal/Component/PhpStorage/PhpStorageInterface.php
@@ -55,6 +55,20 @@ public function save($name, $code);
    * Whether this is a writable storage.
    *
    * @return bool
+   *   TRUE if writable, otherwise FALSE.
+   */
+  public function writable();
+
+  /**
+   * Whether this is a writable storage.
+   *
+   * @return bool
+   *   TRUE if writable, otherwise FALSE.
+   *
+   * @deprecated in drupal:10.1.0 and is removed from drupal:11.0.0. Use
+   *   \Drupal\Component\PhpStorage\PhpStorageInterface::writable() instead.
+   *
+   * @see https://www.drupal.org/node/3155413
    */
   public function writeable();
 
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
index 907f8c5688df..7d21ec35b2fe 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageReadOnlyTest.php
@@ -5,6 +5,7 @@
 use Drupal\Component\PhpStorage\FileStorage;
 use Drupal\Component\PhpStorage\FileReadOnlyStorage;
 use Drupal\Component\Utility\Random;
+use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
 
 /**
  * @coversDefaultClass \Drupal\Component\PhpStorage\FileReadOnlyStorage
@@ -14,6 +15,8 @@
  */
 class FileStorageReadOnlyTest extends PhpStorageTestBase {
 
+  use ExpectDeprecationTrait;
+
   /**
    * Standard test settings to pass to storage instances.
    *
@@ -79,8 +82,10 @@ public function testReadOnly() {
 
   /**
    * @covers ::writeable
+   * @group legacy
    */
-  public function testWriteable() {
+  public function testWritable() {
+    $this->expectDeprecation('Drupal\Component\PhpStorage\FileReadOnlyStorage::writeable() is deprecated in drupal:10.1.0 and will be removed from drupal:11.0.0. Use \Drupal\Component\PhpStorage\FileReadOnlyStorage::writable() instead. See https://www.drupal.org/node/3155413');
     $php_read = new FileReadOnlyStorage($this->readonlyStorage);
     $this->assertFalse($php_read->writeable());
   }
diff --git a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
index de5fbb21c259..0b448f912d77 100644
--- a/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
+++ b/core/tests/Drupal/Tests/Component/PhpStorage/FileStorageTest.php
@@ -6,6 +6,7 @@
 use Drupal\Component\Utility\Random;
 use Drupal\Tests\Traits\PhpUnitWarnings;
 use org\bovigo\vfs\vfsStreamDirectory;
+use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait;
 
 /**
  * @coversDefaultClass \Drupal\Component\PhpStorage\FileStorage
@@ -14,7 +15,7 @@
  */
 class FileStorageTest extends PhpStorageTestBase {
 
-  use PhpUnitWarnings;
+  use PhpUnitWarnings, ExpectDeprecationTrait;
 
   /**
    * Standard test settings to pass to storage instances.
@@ -50,8 +51,10 @@ public function testCRUD() {
 
   /**
    * @covers ::writeable
+   * @group legacy
    */
-  public function testWriteable() {
+  public function testWritable() {
+    $this->expectDeprecation('Drupal\Component\PhpStorage\FileStorage::writeable() is deprecated in drupal:10.1.0 and will be removed from drupal:11.0.0. Use \Drupal\Component\PhpStorage\FileStorage::writable() instead. See https://www.drupal.org/node/3155413');
     $php = new FileStorage($this->standardSettings);
     $this->assertTrue($php->writeable());
   }
-- 
GitLab