From cc557aa0fcc2f6e2de0b61b134ced6ebb14bb9e7 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Thu, 29 May 2025 18:12:17 +0100 Subject: [PATCH] Add phpstan --- modules/opd_daily_emails/opd_daily_emails.module | 11 ++++++++++- .../src/Collection/DailyEmailCollection.php | 3 +++ .../src/Repository/DailyEmailNodeRepository.php | 2 ++ .../tests/src/Functional/DailyEmailTokenTest.php | 2 +- .../Repository/DailyEmailNodeRepositoryTest.php | 8 ++------ .../tests/src/Traits/DailyEmailTestTrait.php | 3 +++ modules/opd_podcast/opd_podcast.module | 4 ++++ phpstan.neon.dist | 5 +++++ 8 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 phpstan.neon.dist diff --git a/modules/opd_daily_emails/opd_daily_emails.module b/modules/opd_daily_emails/opd_daily_emails.module index 13fcc8067..1372c83bf 100644 --- a/modules/opd_daily_emails/opd_daily_emails.module +++ b/modules/opd_daily_emails/opd_daily_emails.module @@ -3,11 +3,14 @@ declare(strict_types=1); use Drupal\Core\Render\BubbleableMetadata; +use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\opd_daily_emails\Collection\DailyEmailCollection; use Drupal\opd_daily_emails\Repository\DailyEmailNodeRepository; /** * Implements hook_token_info(). + * + * @return array{tokens: array, types: array} */ function opd_daily_emails_token_info(): array { $tokens = []; @@ -34,8 +37,14 @@ function opd_daily_emails_token_info(): array { /** * Implements hook_tokens(). + * + * @param array $tokens + * @param array $data + * @param array $options + * + * @return array */ -function opd_daily_emails_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleableMetadata) : array { +function opd_daily_emails_tokens(string $type, array $tokens, array $data, array $options, BubbleableMetadata $bubbleableMetadata) : array { $replacements = []; if ($type === 'opd-daily-emails') { diff --git a/modules/opd_daily_emails/src/Collection/DailyEmailCollection.php b/modules/opd_daily_emails/src/Collection/DailyEmailCollection.php index 975f2453b..74bfe516f 100644 --- a/modules/opd_daily_emails/src/Collection/DailyEmailCollection.php +++ b/modules/opd_daily_emails/src/Collection/DailyEmailCollection.php @@ -8,6 +8,9 @@ use Drupal\node\NodeInterface; final class DailyEmailCollection implements \Countable { + /** + * @param array $emails + */ public function __construct( private array $emails, ) { diff --git a/modules/opd_daily_emails/src/Repository/DailyEmailNodeRepository.php b/modules/opd_daily_emails/src/Repository/DailyEmailNodeRepository.php index 69af08ba3..02374708e 100644 --- a/modules/opd_daily_emails/src/Repository/DailyEmailNodeRepository.php +++ b/modules/opd_daily_emails/src/Repository/DailyEmailNodeRepository.php @@ -27,6 +27,8 @@ final class DailyEmailNodeRepository implements DailyEmailRepositoryInterface { $query->accessCheck(TRUE); $nodeIds = $query->execute(); + + /** @var NodeInterface[] */ $nodes = $nodeStorage->loadMultiple($nodeIds); return new DailyEmailCollection($nodes); diff --git a/modules/opd_daily_emails/tests/src/Functional/DailyEmailTokenTest.php b/modules/opd_daily_emails/tests/src/Functional/DailyEmailTokenTest.php index 8be1b970d..fcaef58ef 100644 --- a/modules/opd_daily_emails/tests/src/Functional/DailyEmailTokenTest.php +++ b/modules/opd_daily_emails/tests/src/Functional/DailyEmailTokenTest.php @@ -14,7 +14,7 @@ class DailyEmailTokenTest extends BrowserTestBase { public $defaultTheme = 'stark'; - public static $modules = [ + protected static $modules = [ 'node', 'opd_daily_emails', ]; diff --git a/modules/opd_daily_emails/tests/src/Kernel/Repository/DailyEmailNodeRepositoryTest.php b/modules/opd_daily_emails/tests/src/Kernel/Repository/DailyEmailNodeRepositoryTest.php index 2b02225c1..b5c3ac86f 100644 --- a/modules/opd_daily_emails/tests/src/Kernel/Repository/DailyEmailNodeRepositoryTest.php +++ b/modules/opd_daily_emails/tests/src/Kernel/Repository/DailyEmailNodeRepositoryTest.php @@ -15,7 +15,7 @@ final class DailyEmailNodeRepositoryTest extends EntityKernelTestBase { use DailyEmailTestTrait; - public static $modules = [ + protected static $modules = [ 'node', 'opd_daily_emails', ]; @@ -32,11 +32,7 @@ final class DailyEmailNodeRepositoryTest extends EntityKernelTestBase { ]); $repository = $this->container->get(DailyEmailNodeRepository::class); - - $this->assertInstanceOf( - actual: $repository, - expected: DailyEmailRepositoryInterface::class, - ); + assert($repository instanceof DailyEmailRepositoryInterface); $emails = $repository->getAll(); diff --git a/modules/opd_daily_emails/tests/src/Traits/DailyEmailTestTrait.php b/modules/opd_daily_emails/tests/src/Traits/DailyEmailTestTrait.php index 67c0e8815..8944aa46d 100644 --- a/modules/opd_daily_emails/tests/src/Traits/DailyEmailTestTrait.php +++ b/modules/opd_daily_emails/tests/src/Traits/DailyEmailTestTrait.php @@ -11,6 +11,9 @@ trait DailyEmailTestTrait { use NodeCreationTrait; + /** + * @param array $options + */ protected function createDailyEmailNode(array $options): NodeInterface { return $this->createNode(array_merge( $options, diff --git a/modules/opd_podcast/opd_podcast.module b/modules/opd_podcast/opd_podcast.module index 7cc47fdf0..3c9c53a9b 100644 --- a/modules/opd_podcast/opd_podcast.module +++ b/modules/opd_podcast/opd_podcast.module @@ -4,6 +4,10 @@ declare(strict_types=1); use Drupal\node\NodeInterface; +/** + * @param array> $links + * @param array $context + */ function opd_podcast_node_links_alter(array &$links, NodeInterface $entity, array &$context): void { if ($entity->bundle() !== 'podcast_episode') { return; diff --git a/phpstan.neon.dist b/phpstan.neon.dist new file mode 100644 index 000000000..6623f9e73 --- /dev/null +++ b/phpstan.neon.dist @@ -0,0 +1,5 @@ +parameters: + level: max + paths: + - modules + - themes