From 638b5082aad4da51f5966bd61c45ce5110dc7d3b Mon Sep 17 00:00:00 2001
From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org>
Date: Mon, 13 Jan 2025 12:25:30 -0600
Subject: [PATCH 1/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility -
 Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal
 class Drupal\node\NodeForm

---
 phpstan.neon | 43 +++++++++++++------------------------------
 1 file changed, 13 insertions(+), 30 deletions(-)

diff --git a/phpstan.neon b/phpstan.neon
index 6cf6a52..810307b 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -1,32 +1,15 @@
 includes:
-  - phar://phpstan.phar/conf/bleedingEdge.neon
-
 parameters:
-  level: 0
-  paths:
-    - .
-  ignoreErrors:
-    # new static() is a common pattern in Drupal core and contrib.
-    # https://www.drupal.org/docs/develop/development-tools/phpstan/handling-unsafe-usage-of-new-static
-    -
-      message: "#^Unsafe usage of new static#"
-
-    -
-      message: "#^\\\\Drupal calls should be avoided in classes, use dependency injection instead$#"
-      count: 1
-      path: src/Controller/QuickNodeCloneNodeController.php
-
-    -
-      message: "#^Parameter \\$event of method Drupal\\\\quick_node_clone\\\\EventSubscriber\\\\AddressEventSubscriber\\:\\:onInitialValues\\(\\) has invalid type Drupal\\\\address\\\\Event\\\\InitialValuesEvent\\.$#"
-      count: 1
-      path: src/EventSubscriber/AddressEventSubscriber.php
-
-    -
-      message: "#^Class Drupal\\\\quick_node_clone\\\\Form\\\\QuickNodeCloneNodeForm extends @internal class Drupal\\\\node\\\\NodeForm\\.$#"
-      count: 1
-      path: src/Form/QuickNodeCloneNodeForm.php
-
-    -
-      message: "#^Method Drupal\\\\quick_node_clone\\\\Form\\\\QuickNodeCloneNodeForm\\:\\:save\\(\\) should return int but return statement is missing\\.$#"
-      count: 1
-      path: src/Form/QuickNodeCloneNodeForm.php
+    level: 0
+    fileExtensions:
+        - php
+        - module
+        - inc
+        - install
+        - theme
+        - profile
+    reportUnmatchedIgnoredErrors: false
+    ignoreErrors:
+        # new static() is a best practice in Drupal, so we cannot fix that.
+        - "#^Unsafe usage of new static#"
+        - "#@internal#"
-- 
GitLab


From 9ba8c4c37db3553a8674cec527a8be29c94f4f89 Mon Sep 17 00:00:00 2001
From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org>
Date: Mon, 13 Jan 2025 12:28:46 -0600
Subject: [PATCH 2/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility -
 Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal
 class Drupal\node\NodeForm

---
 src/Form/QuickNodeCloneNodeForm.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/Form/QuickNodeCloneNodeForm.php b/src/Form/QuickNodeCloneNodeForm.php
index bfc2e81..cee7257 100644
--- a/src/Form/QuickNodeCloneNodeForm.php
+++ b/src/Form/QuickNodeCloneNodeForm.php
@@ -84,6 +84,8 @@ class QuickNodeCloneNodeForm extends NodeForm {
       $this->messenger()->addError($this->t('The cloned post could not be saved.'));
       $form_state->setRebuild();
     }
+
+    return $insert;
   }
 
 }
-- 
GitLab


From 17e2bfe8bc4878493e58ceec82ef0fdbd9d243a2 Mon Sep 17 00:00:00 2001
From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org>
Date: Mon, 13 Jan 2025 12:49:42 -0600
Subject: [PATCH 3/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility -
 Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal
 class Drupal\node\NodeForm

---
 composer.json                                 |  3 ++-
 .../QuickNodeCloneNodeController.php          | 27 +++++++++++++++----
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/composer.json b/composer.json
index 62d97b0..721470e 100644
--- a/composer.json
+++ b/composer.json
@@ -23,6 +23,7 @@
     },
     "require-dev": {
         "drupal/paragraphs": "1.x-dev",
-        "drupal/group": "^1 || ^2 || ^3"
+        "drupal/group": "^1 || ^2 || ^3",
+        "drupal/address": "^1"
     }
 }
diff --git a/src/Controller/QuickNodeCloneNodeController.php b/src/Controller/QuickNodeCloneNodeController.php
index 919c58b..7980c52 100644
--- a/src/Controller/QuickNodeCloneNodeController.php
+++ b/src/Controller/QuickNodeCloneNodeController.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\quick_node_clone\Controller;
 
+use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Datetime\DateFormatterInterface;
 use Drupal\Core\Entity\EntityRepositoryInterface;
 use Drupal\Core\Render\RendererInterface;
@@ -23,6 +24,13 @@ class QuickNodeCloneNodeController extends NodeController {
    */
   protected $qncEntityFormBuilder;
 
+  /**
+   * The settings.
+   *
+   * @var \Drupal\Core\Config\ImmutableConfig
+   */
+  protected $settings;
+
   /**
    * Constructs a NodeController object.
    *
@@ -34,10 +42,19 @@ class QuickNodeCloneNodeController extends NodeController {
    *   The entity repository.
    * @param \Drupal\quick_node_clone\Entity\QuickNodeCloneEntityFormBuilder $entity_form_builder
    *   The entity form builder.
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
+   *   The config factory.
    */
-  public function __construct(DateFormatterInterface $date_formatter, RendererInterface $renderer, EntityRepositoryInterface $entity_repository, QuickNodeCloneEntityFormBuilder $entity_form_builder) {
+  public function __construct(
+    DateFormatterInterface $date_formatter,
+    RendererInterface $renderer,
+    EntityRepositoryInterface $entity_repository,
+    QuickNodeCloneEntityFormBuilder $entity_form_builder,
+    ConfigFactoryInterface $config_factory,
+  ) {
     parent::__construct($date_formatter, $renderer, $entity_repository);
     $this->qncEntityFormBuilder = $entity_form_builder;
+    $this->settings = $config_factory->get('quick_node_clone.settings');
   }
 
   /**
@@ -48,7 +65,8 @@ class QuickNodeCloneNodeController extends NodeController {
       $container->get('date.formatter'),
       $container->get('renderer'),
       $container->get('entity.repository'),
-      $container->get('quick_node_clone.entity.form_builder')
+      $container->get('quick_node_clone.entity.form_builder'),
+      $container->get('config.factory'),
     );
   }
 
@@ -92,9 +110,8 @@ class QuickNodeCloneNodeController extends NodeController {
    */
   public function clonePageTitle(Node $node) {
     $prepend_text = "";
-    $config = \Drupal::config('quick_node_clone.settings');
-    if (!empty($config->get('text_to_prepend_to_title'))) {
-      $prepend_text = $config->get('text_to_prepend_to_title') . " ";
+    if (!empty($this->settings->get('text_to_prepend_to_title'))) {
+      $prepend_text = $this->settings->get('text_to_prepend_to_title') . " ";
     }
     return $prepend_text . $node->getTitle();
   }
-- 
GitLab


From 0f142640e63ccf89705d180bfa270597cf8c7986 Mon Sep 17 00:00:00 2001
From: bluegeek9 <5614-bluegeek9@users.noreply.drupalcode.org>
Date: Mon, 13 Jan 2025 12:59:55 -0600
Subject: [PATCH 4/4] Issue #3391014 by bluegeek9: Drupal 10 compatibility -
 Class Drupal\quick_node_clone\Form\QuickNodeCloneNodeForm extends @internal
 class Drupal\node\NodeForm

---
 composer.json | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/composer.json b/composer.json
index 721470e..62d97b0 100644
--- a/composer.json
+++ b/composer.json
@@ -23,7 +23,6 @@
     },
     "require-dev": {
         "drupal/paragraphs": "1.x-dev",
-        "drupal/group": "^1 || ^2 || ^3",
-        "drupal/address": "^1"
+        "drupal/group": "^1 || ^2 || ^3"
     }
 }
-- 
GitLab