. */ namespace SP\Core; use SP\Providers\Acl\AclHandler; use SP\Providers\Log\DatabaseLogHandler; use SP\Providers\Log\FileLogHandler; use SP\Providers\Log\RemoteSyslogHandler; use SP\Providers\Log\SyslogHandler; use SP\Providers\Mail\MailHandler; use SP\Providers\Notification\NotificationHandler; /** * The Provider helper class will have oll the providers availabe in the application */ final class ProvidersHelper { private FileLogHandler $fileLogHandler; private DatabaseLogHandler $databaseLogHandler; private MailHandler $mailHandler; private SyslogHandler $syslogHandler; private RemoteSyslogHandler $remoteSyslogHandler; private AclHandler $aclHandler; private NotificationHandler $notificationHandler; /** * Module constructor. * * @param \SP\Providers\Log\FileLogHandler $fileLogHandler * @param \SP\Providers\Log\DatabaseLogHandler $databaseLogHandler * @param \SP\Providers\Mail\MailHandler $mailHandler * @param \SP\Providers\Log\SyslogHandler $syslogHandler * @param \SP\Providers\Log\RemoteSyslogHandler $remoteSyslogHandler * @param \SP\Providers\Acl\AclHandler $aclHandler * @param \SP\Providers\Notification\NotificationHandler $notificationHandler */ public function __construct( FileLogHandler $fileLogHandler, DatabaseLogHandler $databaseLogHandler, MailHandler $mailHandler, SyslogHandler $syslogHandler, RemoteSyslogHandler $remoteSyslogHandler, AclHandler $aclHandler, NotificationHandler $notificationHandler ) { $this->fileLogHandler = $fileLogHandler; $this->databaseLogHandler = $databaseLogHandler; $this->mailHandler = $mailHandler; $this->syslogHandler = $syslogHandler; $this->remoteSyslogHandler = $remoteSyslogHandler; $this->aclHandler = $aclHandler; $this->notificationHandler = $notificationHandler; } /** * @return \SP\Providers\Log\FileLogHandler */ public function getFileLogHandler(): FileLogHandler { if (!$this->fileLogHandler->isInitialized()) { $this->fileLogHandler->initialize(); } return $this->fileLogHandler; } /** * @return \SP\Providers\Log\DatabaseLogHandler */ public function getDatabaseLogHandler(): DatabaseLogHandler { if (!$this->databaseLogHandler->isInitialized()) { $this->databaseLogHandler->initialize(); } return $this->databaseLogHandler; } /** * @return \SP\Providers\Mail\MailHandler */ public function getMailHandler(): MailHandler { if (!$this->mailHandler->isInitialized()) { $this->mailHandler->initialize(); } return $this->mailHandler; } /** * @return \SP\Providers\Log\SyslogHandler */ public function getSyslogHandler(): SyslogHandler { if (!$this->syslogHandler->isInitialized()) { $this->syslogHandler->initialize(); } return $this->syslogHandler; } /** * @return \SP\Providers\Log\RemoteSyslogHandler */ public function getRemoteSyslogHandler(): RemoteSyslogHandler { if (!$this->remoteSyslogHandler->isInitialized()) { $this->remoteSyslogHandler->initialize(); } return $this->remoteSyslogHandler; } /** * @return \SP\Providers\Acl\AclHandler */ public function getAclHandler(): AclHandler { if (!$this->aclHandler->isInitialized()) { $this->aclHandler->initialize(); } return $this->aclHandler; } /** * @return \SP\Providers\Notification\NotificationHandler */ public function getNotificationHandler(): NotificationHandler { if (!$this->notificationHandler->isInitialized()) { $this->notificationHandler->initialize(); } return $this->notificationHandler; } }