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

33 lines
634 B
PHP

<?php
declare(strict_types=1);
namespace Drupal\opd_daily_emails;
use Drupal\node\NodeInterface;
use Webmozart\Assert\Assert;
final class DailyEmails implements \Countable {
/**
* @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];
}
public static function fromEmails(array $emails): self {
return new self($emails);
}
}