Try a different way of naming and grouping classes.
This commit is contained in:
Oliver Davies 2025-06-12 02:10:08 +01:00
parent 52c1b33711
commit 6b6b362a49
15 changed files with 111 additions and 59 deletions

View file

@ -2,11 +2,10 @@
declare(strict_types=1);
namespace Drupal\opd_daily_emails\Repository;
namespace Drupal\opd_daily_emails;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\node\NodeInterface;
use Drupal\opd_daily_emails\Collection\DailyEmailCollection;
final class DailyEmailNodeRepository implements DailyEmailRepositoryInterface {
@ -15,7 +14,7 @@ final class DailyEmailNodeRepository implements DailyEmailRepositoryInterface {
) {
}
public function getAll(): DailyEmailCollection {
public function getAll(): DailyEmails {
$nodeStorage = $this->entityTypeManager
->getStorage('node');
@ -31,7 +30,7 @@ final class DailyEmailNodeRepository implements DailyEmailRepositoryInterface {
/** @var NodeInterface[] */
$nodes = $nodeStorage->loadMultiple($nodeIds);
return new DailyEmailCollection($nodes);
return DailyEmails::new($nodes);
}
}

View file

@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
namespace Drupal\opd_daily_emails;
interface DailyEmailRepositoryInterface {
public function getAll(): DailyEmails;
}

View file

@ -2,16 +2,16 @@
declare(strict_types=1);
namespace Drupal\opd_daily_emails\Collection;
namespace Drupal\opd_daily_emails;
use Drupal\node\NodeInterface;
final class DailyEmailCollection implements \Countable {
final class DailyEmails implements \Countable {
/**
* @param array<positive-int, NodeInterface> $emails
*/
public function __construct(
private function __construct(
private array $emails,
) {
}
@ -24,4 +24,8 @@ final class DailyEmailCollection implements \Countable {
return array_values($this->emails)[0];
}
public static function new(array $emails): self {
return new self($emails);
}
}

View file

@ -1,13 +0,0 @@
<?php
declare(strict_types=1);
namespace Drupal\opd_daily_emails\Repository;
use Drupal\opd_daily_emails\Collection\DailyEmailCollection;
interface DailyEmailRepositoryInterface {
public function getAll(): DailyEmailCollection;
}