diff --git a/phpstan.neon b/phpstan.neon index 6cf6a52964bb5e04c6d956642134a7e82ff63579..810307b4c402ffb2f664ab80042e0d22ebf87c2d 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#" diff --git a/src/Controller/QuickNodeCloneNodeController.php b/src/Controller/QuickNodeCloneNodeController.php index 919c58b0a343f1c341c05d70fed097b323fdf401..7980c5298fc5b45fe326d3ca5fa47fc04f78e91e 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(); } diff --git a/src/Form/QuickNodeCloneNodeForm.php b/src/Form/QuickNodeCloneNodeForm.php index bfc2e812f46e222fb671d8317ccc6a4bcd6fc5ec..cee725795afeb887a8d93e8757eaada0d46e38d7 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; } }