From d9e7844f8fad47fe18a89eb506d02a2fa46f0390 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Sat, 1 Jan 2022 13:57:37 +0000
Subject: [PATCH] =?UTF-8?q?Issue=20#3255243=20by=20longwave,=20kim.pepper,?=
 =?UTF-8?q?=20G=C3=A1bor=20Hojtsy,=20andypost:=20Replace=20Diactoros'=20PS?=
 =?UTF-8?q?R-17=20implementation=20with=20Guzzle's?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 composer.lock                                 | 102 +-----------------
 .../Metapackage/CoreRecommended/composer.json |   1 -
 core/composer.json                            |   1 -
 core/core.services.yml                        |   8 +-
 core/misc/cspell/dictionary.txt               |   1 -
 .../src/TestControllers.php                   |   4 +-
 .../Controller/ControllerResolverTest.php     |   7 +-
 7 files changed, 9 insertions(+), 115 deletions(-)

diff --git a/composer.lock b/composer.lock
index 39849c0be6b8..bb5244b40b47 100644
--- a/composer.lock
+++ b/composer.lock
@@ -452,7 +452,7 @@
             "dist": {
                 "type": "path",
                 "url": "core",
-                "reference": "fe303578f231198d09504af69ee768be7c455b06"
+                "reference": "34bfd0597745e88afb64bf5294f6af4975930fdc"
             },
             "require": {
                 "asm89/stack-cors": "^1.1",
@@ -473,7 +473,6 @@
                 "ext-tokenizer": "*",
                 "ext-xml": "*",
                 "guzzlehttp/guzzle": "^7.3.0",
-                "laminas/laminas-diactoros": "^2.1",
                 "laminas/laminas-feed": "^2.12",
                 "masterminds/html5": "^2.1",
                 "pear/archive_tar": "^1.4.14",
@@ -1157,105 +1156,6 @@
             ],
             "time": "2021-10-06T17:43:30+00:00"
         },
-        {
-            "name": "laminas/laminas-diactoros",
-            "version": "2.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/laminas/laminas-diactoros.git",
-                "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
-                "reference": "0c26ef1d95b6d7e6e3943a243ba3dc0797227199",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.3 || ~8.0.0 || ~8.1.0",
-                "psr/http-factory": "^1.0",
-                "psr/http-message": "^1.0"
-            },
-            "conflict": {
-                "phpspec/prophecy": "<1.9.0",
-                "zendframework/zend-diactoros": "*"
-            },
-            "provide": {
-                "psr/http-factory-implementation": "1.0",
-                "psr/http-message-implementation": "1.0"
-            },
-            "require-dev": {
-                "ext-curl": "*",
-                "ext-dom": "*",
-                "ext-gd": "*",
-                "ext-libxml": "*",
-                "http-interop/http-factory-tests": "^0.8.0",
-                "laminas/laminas-coding-standard": "~1.0.0",
-                "php-http/psr7-integration-tests": "^1.1",
-                "phpspec/prophecy-phpunit": "^2.0",
-                "phpunit/phpunit": "^9.1",
-                "psalm/plugin-phpunit": "^0.14.0",
-                "vimeo/psalm": "^4.3"
-            },
-            "type": "library",
-            "extra": {
-                "laminas": {
-                    "config-provider": "Laminas\\Diactoros\\ConfigProvider",
-                    "module": "Laminas\\Diactoros"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "src/functions/create_uploaded_file.php",
-                    "src/functions/marshal_headers_from_sapi.php",
-                    "src/functions/marshal_method_from_sapi.php",
-                    "src/functions/marshal_protocol_version_from_sapi.php",
-                    "src/functions/marshal_uri_from_sapi.php",
-                    "src/functions/normalize_server.php",
-                    "src/functions/normalize_uploaded_files.php",
-                    "src/functions/parse_cookie_header.php",
-                    "src/functions/create_uploaded_file.legacy.php",
-                    "src/functions/marshal_headers_from_sapi.legacy.php",
-                    "src/functions/marshal_method_from_sapi.legacy.php",
-                    "src/functions/marshal_protocol_version_from_sapi.legacy.php",
-                    "src/functions/marshal_uri_from_sapi.legacy.php",
-                    "src/functions/normalize_server.legacy.php",
-                    "src/functions/normalize_uploaded_files.legacy.php",
-                    "src/functions/parse_cookie_header.legacy.php"
-                ],
-                "psr-4": {
-                    "Laminas\\Diactoros\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "description": "PSR HTTP Message implementations",
-            "homepage": "https://laminas.dev",
-            "keywords": [
-                "http",
-                "laminas",
-                "psr",
-                "psr-17",
-                "psr-7"
-            ],
-            "support": {
-                "chat": "https://laminas.dev/chat",
-                "docs": "https://docs.laminas.dev/laminas-diactoros/",
-                "forum": "https://discourse.laminas.dev",
-                "issues": "https://github.com/laminas/laminas-diactoros/issues",
-                "rss": "https://github.com/laminas/laminas-diactoros/releases.atom",
-                "source": "https://github.com/laminas/laminas-diactoros"
-            },
-            "funding": [
-                {
-                    "url": "https://funding.communitybridge.org/projects/laminas-project",
-                    "type": "community_bridge"
-                }
-            ],
-            "time": "2021-09-22T03:54:36+00:00"
-        },
         {
             "name": "laminas/laminas-escaper",
             "version": "2.9.0",
diff --git a/composer/Metapackage/CoreRecommended/composer.json b/composer/Metapackage/CoreRecommended/composer.json
index 1ef5a32a73ea..264055c04d96 100644
--- a/composer/Metapackage/CoreRecommended/composer.json
+++ b/composer/Metapackage/CoreRecommended/composer.json
@@ -16,7 +16,6 @@
         "guzzlehttp/guzzle": "7.4.0",
         "guzzlehttp/promises": "1.5.1",
         "guzzlehttp/psr7": "2.1.0",
-        "laminas/laminas-diactoros": "2.8.0",
         "laminas/laminas-escaper": "2.9.0",
         "laminas/laminas-feed": "2.15.0",
         "laminas/laminas-stdlib": "3.6.1",
diff --git a/core/composer.json b/core/composer.json
index fc487126854f..71b0f6a7ca30 100644
--- a/core/composer.json
+++ b/core/composer.json
@@ -41,7 +41,6 @@
         "egulias/email-validator": "^2.1.22|^3.0",
         "masterminds/html5": "^2.1",
         "symfony/psr-http-message-bridge": "^2.0",
-        "laminas/laminas-diactoros": "^2.1",
         "composer/semver": "^3.0",
         "asm89/stack-cors": "^1.1",
         "pear/archive_tar": "^1.4.14",
diff --git a/core/core.services.yml b/core/core.services.yml
index f0c703651547..64c718494fe7 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -812,16 +812,16 @@ services:
   psr7.http_foundation_factory:
     class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
   psr17.server_request_factory:
-    class: Laminas\Diactoros\ServerRequestFactory
+    class: GuzzleHttp\Psr7\HttpFactory
     public: false
   psr17.stream_factory:
-    class: Laminas\Diactoros\StreamFactory
+    class: GuzzleHttp\Psr7\HttpFactory
     public: false
   psr17.uploaded_file_factory:
-    class: Laminas\Diactoros\UploadedFileFactory
+    class: GuzzleHttp\Psr7\HttpFactory
     public: false
   psr17.response_factory:
-    class: Laminas\Diactoros\ResponseFactory
+    class: GuzzleHttp\Psr7\HttpFactory
     public: false
   psr7.http_message_factory:
     class: Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory
diff --git a/core/misc/cspell/dictionary.txt b/core/misc/cspell/dictionary.txt
index feb5bba6ee69..11a649474345 100644
--- a/core/misc/cspell/dictionary.txt
+++ b/core/misc/cspell/dictionary.txt
@@ -344,7 +344,6 @@ deutscher
 devel
 deviantart
 dflt
-diactoros
 dialogcreate
 dialogsave
 diffchange
diff --git a/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php b/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php
index 5ee789fd0aff..ff36b8aa593b 100644
--- a/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php
+++ b/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php
@@ -8,7 +8,7 @@
 use Drupal\Core\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
-use Laminas\Diactoros\Response\HtmlResponse;
+use GuzzleHttp\Psr7\Response as Psr7Response;
 
 /**
  * Controller routines for testing the routing system.
@@ -93,7 +93,7 @@ public function test21() {
   }
 
   public function test23() {
-    return new HtmlResponse('test23');
+    return new Psr7Response(200, [], 'test23');
   }
 
   public function test24() {
diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
index bbd4f5ce4aee..862d4aa89173 100644
--- a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php
@@ -12,10 +12,7 @@
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\Tests\UnitTestCase;
-use Laminas\Diactoros\ResponseFactory;
-use Laminas\Diactoros\ServerRequestFactory;
-use Laminas\Diactoros\StreamFactory;
-use Laminas\Diactoros\UploadedFileFactory;
+use GuzzleHttp\Psr7\HttpFactory;
 use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
 use Symfony\Component\DependencyInjection\ContainerAwareTrait;
@@ -60,7 +57,7 @@ protected function setUp(): void {
     $this->container = new ContainerBuilder();
     $class_resolver = new ClassResolver();
     $class_resolver->setContainer($this->container);
-    $this->httpMessageFactory = new PsrHttpFactory(new ServerRequestFactory(), new StreamFactory(), new UploadedFileFactory(), new ResponseFactory());
+    $this->httpMessageFactory = new PsrHttpFactory(new HttpFactory(), new HttpFactory(), new HttpFactory(), new HttpFactory());
     $this->controllerResolver = new ControllerResolver($this->httpMessageFactory, $class_resolver);
   }
 
-- 
GitLab