/** * Sets all the required parameters to configure a given Source instance. * * @param SourceConfig $sourceConfig * * @throws \Msl\ResourceProxy\Exception\BadSourceConfigurationException * * @return void */ public function setConfig(SourceConfig $sourceConfig) { // Setting the source config $this->sourceConfig = $sourceConfig; // Setting object fields from configuration $this->name = $sourceConfig->getName(); // Checking if crypt protocol is accepted $cryptProtocol = $sourceConfig->getCryptProtocol(); if (!empty($cryptProtocol)) { if ($cryptProtocol !== self::SSL_CRYPT_PROTOCOL && $cryptProtocol !== self::TSL_CRYPT_PROTOCOL) { throw new Exception\BadSourceConfigurationException(sprintf('Unrecognized cryptographic protocol \'%s\'. Accepted values are: \'%s\'.', $cryptProtocol, self::SSL_CRYPT_PROTOCOL)); } } // Setting zend imap configuration $storageConfig = array('host' => $sourceConfig->getHost(), 'user' => $sourceConfig->getUsername(), 'port' => $sourceConfig->getPort(), 'password' => $sourceConfig->getPassword()); if (!empty($cryptProtocol)) { $storageConfig['ssl'] = $cryptProtocol; } if (!empty($this->folder)) { $storageConfig['folder'] = $this->folder; } // Initializing zend imap instance $this->storage = $this->getStorageInstance($storageConfig); }