oliverdavies.uk/modules/opd_daily_emails/src/DailyEmails.php

34 lines
634 B
PHP
Raw Normal View History

<?php
declare(strict_types=1);
namespace Drupal\opd_daily_emails;
use Drupal\node\NodeInterface;
use Webmozart\Assert\Assert;
final class DailyEmails implements \Countable {
2025-05-29 18:12:17 +01:00
/**
* @param array<positive-int, NodeInterface> $emails
*/
private function __construct(
private array $emails,
) {
Assert::allIsInstanceOf($emails, NodeInterface::class);
}
public function count(): int {
return count($this->emails);
}
public function first(): NodeInterface {
return array_values($this->emails)[0];
}
2025-06-12 02:10:09 +01:00
public static function fromEmails(array $emails): self {
return new self($emails);
}
}