ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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')) {
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 }
settings()
Definition: settings.php:2
Class ilMailMimeSenderFactory.
const ANONYMOUS_USER_ID
Definition: constants.php:25
__construct(ilSetting $settings, int $anonymousUsrId=null)
ilMailMimeSenderFactory constructor.
Class ilMailMimeSenderSystem.
Class ilMailMimeSenderUserByEmailAddress.
Class ilMailMimeSenderSystem.
Interface ilMailMimeTransport.
userByEmailAddress(string $emailAddress)
Class ilMailMimeSenderUserById.