ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilMailMimeSenderFactory.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
3
9{
11 protected $settings;
12
14 protected $senders = [];
15
17 protected $anonymousUsrId = 0;
18
24 public function __construct(ilSetting $settings, int $anonymousUsrId = null)
25 {
26 $this->settings = $settings;
27 if (null === $anonymousUsrId && defined('ANONYMOUS_USER_ID')) {
28 $anonymousUsrId = (int) ANONYMOUS_USER_ID;
29 }
30 $this->anonymousUsrId = $anonymousUsrId;
31 }
32
37 protected function isSystemMail(int $usrId) : bool
38 {
39 return $usrId === $this->anonymousUsrId;
40 }
41
46 public function getSenderByUsrId(int $usrId) : ilMailMimeSender
47 {
48 if (array_key_exists($usrId, $this->senders)) {
49 return $this->senders[$usrId];
50 }
51
52 switch (true) {
53 case $this->isSystemMail($usrId):
54 $sender = $this->system();
55 break;
56
57 default:
58 $sender = $this->user($usrId);
59 break;
60 }
61
62 $this->senders[$usrId] = $sender;
63
64 return $sender;
65 }
66
70 public function system() : ilMailMimeSenderSystem
71 {
72 return new ilMailMimeSenderSystem($this->settings);
73 }
74
79 public function user(int $usrId) : ilMailMimeSenderUser
80 {
81 return new ilMailMimeSenderUserById($this->settings, $usrId);
82 }
83
88 public function userByEmailAddress(string $emailAddress) : ilMailMimeSenderUser
89 {
90 return new ilMailMimeSenderUserByEmailAddress($this->settings, $emailAddress);
91 }
92}
An exception for terminatinating execution or to throw for unit testing.
Class ilMailMimeSenderFactory.
userByEmailAddress(string $emailAddress)
__construct(ilSetting $settings, int $anonymousUsrId=null)
ilMailMimeSenderFactory constructor.
Class ilMailMimeSenderSystem.
Class ilMailMimeSenderUserById.
Class ilMailMimeSenderSystem.
ILIAS Setting Class.
Interface ilMailMimeTransport.
settings()
Definition: settings.php:2