Example #1
0
 /**
  * Create a transport from config
  *
  * @param   ConfigObject  $config
  *
  * @return  LocalCommandFile|RemoteCommandFile
  * @throws  ConfigurationError
  */
 public static function fromConfig(ConfigObject $config)
 {
     $config = clone $config;
     switch (strtolower($config->transport)) {
         case RemoteCommandFile::TRANSPORT:
             $transport = new RemoteCommandFile();
             break;
         case LocalCommandFile::TRANSPORT:
         case '':
             // Casting null to string is the empty string
             $transport = new LocalCommandFile();
             break;
         default:
             throw new ConfigurationError('Can\'t create command transport \'%s\'. Invalid transport defined in \'%s\'.' . ' Use one of \'%s\' or \'%s\'.', $config->transport, self::$config->getConfigFile(), LocalCommandFile::TRANSPORT, RemoteCommandFile::TRANSPORT);
     }
     unset($config->transport);
     foreach ($config as $key => $value) {
         $method = 'set' . ucfirst($key);
         if (!method_exists($transport, $method)) {
             // Ignore settings from config that don't have a setter on the transport instead of throwing an
             // exception here because the transport should throw an exception if it's not fully set up
             // when being about to send a command
             continue;
         }
         $transport->{$method}($value);
     }
     return $transport;
 }
Example #2
0
 /**
  * Persist the current configuration to disk
  *
  * If an error occurs the user is shown a view describing the issue and displaying the raw INI configuration.
  *
  * @return  bool                    Whether the configuration could be persisted
  */
 public function save()
 {
     try {
         $this->config->saveIni();
     } catch (Exception $e) {
         $this->addDecorator('ViewScript', array('viewModule' => 'default', 'viewScript' => 'showConfiguration.phtml', 'errorMessage' => $e->getMessage(), 'configString' => $this->config, 'filePath' => $this->config->getConfigFile(), 'placement' => Zend_Form_Decorator_Abstract::PREPEND));
         return false;
     }
     return true;
 }