Loading src/UnicaenMail/Entity/HasMailsInterface.php 0 → 100644 +17 −0 Original line number Diff line number Diff line <?php namespace UnicaenMail\Entity; use UnicaenMail\Entity\Db\Mail; use UnicaenRenderer\Entity\Db\Template; interface HasMailsInterface { public function getMails(): array; public function hasMail(Mail $mail): bool; public function addMail(Mail $mail): void; public function removeMail(Mail $mail): void; public function hasMailWithTemplateCode(string|Template $template): bool; } No newline at end of file src/UnicaenMail/Entity/HasMailsTrait.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace UnicaenMail\Entity; use Doctrine\Common\Collections\Collection; use UnicaenMail\Entity\Db\Mail; use UnicaenRenderer\Entity\Db\Template; trait HasMailsTrait { protected Collection $mails; /** @return Mail[] */ public function getMails(): array { return $this->mails->toArray(); } public function hasMail(Mail $mail): bool { return $this->mails->contains($mail); } public function addMail(Mail $mail): void { if (!$this->hasMail($mail)) { $this->mails->add($mail); } } public function removeMail(Mail $mail): void { $this->removeMail($mail); } public function hasMailWithTemplateCode(string|Template $template): bool { $code = ($template instanceof Template)?$template->generateTag():$template; /** @var Mail $mail */ foreach ($this->mails as $mail) { $motsClefs = explode("||",$mail->getMotsClefs()); if (in_array($code, $motsClefs)) return true; } return false; } } No newline at end of file Loading
src/UnicaenMail/Entity/HasMailsInterface.php 0 → 100644 +17 −0 Original line number Diff line number Diff line <?php namespace UnicaenMail\Entity; use UnicaenMail\Entity\Db\Mail; use UnicaenRenderer\Entity\Db\Template; interface HasMailsInterface { public function getMails(): array; public function hasMail(Mail $mail): bool; public function addMail(Mail $mail): void; public function removeMail(Mail $mail): void; public function hasMailWithTemplateCode(string|Template $template): bool; } No newline at end of file
src/UnicaenMail/Entity/HasMailsTrait.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace UnicaenMail\Entity; use Doctrine\Common\Collections\Collection; use UnicaenMail\Entity\Db\Mail; use UnicaenRenderer\Entity\Db\Template; trait HasMailsTrait { protected Collection $mails; /** @return Mail[] */ public function getMails(): array { return $this->mails->toArray(); } public function hasMail(Mail $mail): bool { return $this->mails->contains($mail); } public function addMail(Mail $mail): void { if (!$this->hasMail($mail)) { $this->mails->add($mail); } } public function removeMail(Mail $mail): void { $this->removeMail($mail); } public function hasMailWithTemplateCode(string|Template $template): bool { $code = ($template instanceof Template)?$template->generateTag():$template; /** @var Mail $mail */ foreach ($this->mails as $mail) { $motsClefs = explode("||",$mail->getMotsClefs()); if (in_array($code, $motsClefs)) return true; } return false; } } No newline at end of file