public function preExecute()
 {
     error_reporting(error_reporting() & ~(E_STRICT | E_DEPRECATED));
     foreach (array('channel_name', 'summary', 'suggestedalias') as $v) {
         $this->{$v} = Doctrine::getTable('SnsConfig')->get(opPluginChannelServerPluginConfiguration::CONFIG_KEY_PREFIX . $v, str_replace(':80', '', $this->getRequest()->getHost()));
     }
     require_once 'PEAR.php';
     require_once 'PEAR/Common.php';
     require_once 'PEAR/ChannelFile.php';
     $baseUrl = 'http://' . $this->channel_name . 'pluginRest/';
     $channel = new PEAR_ChannelFile();
     $channel->setName($this->channel_name);
     $channel->setSummary($this->summary);
     $channel->setAlias($this->suggestedalias);
     $channel->setBaseURL('REST1.0', $baseUrl);
     $channel->setBaseURL('REST1.1', $baseUrl);
     $channel->setBaseURL('REST1.2', $baseUrl);
     $channel->setBaseURL('REST1.3', $baseUrl);
     $registry = new PEAR_Registry(sfConfig::get('sf_cache_dir'), $channel);
     $this->pear = new PEAR_Common();
     $this->pear->config->setRegistry($registry);
     if (!$registry->channelExists($channel->getName())) {
         $registry->addChannel($channel);
     } else {
         $registry->updateChannel($channel);
     }
 }
 public static function generatePearChannelFile($channelName, $summary, $alias, $baseUrl)
 {
     error_reporting(error_reporting() & ~(E_STRICT | E_DEPRECATED));
     require_once 'PEAR.php';
     require_once 'PEAR/Common.php';
     require_once 'PEAR/ChannelFile.php';
     $channel = new PEAR_ChannelFile();
     $channel->setName($channelName);
     $channel->setSummary($summary);
     $channel->setAlias($alias);
     $channel->setBaseURL('REST1.0', $baseUrl);
     $channel->setBaseURL('REST1.1', $baseUrl);
     $channel->setBaseURL('REST1.2', $baseUrl);
     $channel->setBaseURL('REST1.3', $baseUrl);
     return $channel;
 }
Beispiel #3
0
 /**
  * @param string channel name
  * @param bool whether to strictly retrieve channel names
  * @return PEAR_ChannelFile|PEAR_Error
  * @access private
  */
 function &_getChannel($channel, $noaliases = false)
 {
     $ch = false;
     if ($this->_channelExists($channel, $noaliases)) {
         $chinfo = $this->_channelInfo($channel, $noaliases);
         if ($chinfo) {
             if (!class_exists('PEAR_ChannelFile')) {
                 require_once 'PEAR/ChannelFile.php';
             }
             $ch =& PEAR_ChannelFile::fromArrayWithErrors($chinfo);
         }
     }
     if ($ch) {
         if ($ch->validate()) {
             return $ch;
         }
         foreach ($ch->getErrors(true) as $err) {
             $message = $err['message'] . "\n";
         }
         $ch = PEAR::raiseError($message);
         return $ch;
     }
     if ($this->_getChannelFromAlias($channel) == 'pear.php.net') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $pear_channel = new PEAR_ChannelFile();
         $pear_channel->setServer('pear.php.net');
         $pear_channel->setAlias('pear');
         $pear_channel->setSummary('PHP Extension and Application Repository');
         $pear_channel->setDefaultPEARProtocols();
         $pear_channel->setBaseURL('REST1.0', 'http://pear.php.net/rest/');
         $pear_channel->setBaseURL('REST1.1', 'http://pear.php.net/rest/');
         $pear_channel->setBaseURL('REST1.3', 'http://pear.php.net/rest/');
         return $pear_channel;
     }
     if ($this->_getChannelFromAlias($channel) == 'pecl.php.net') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $pear_channel = new PEAR_ChannelFile();
         $pear_channel->setServer('pecl.php.net');
         $pear_channel->setAlias('pecl');
         $pear_channel->setSummary('PHP Extension Community Library');
         $pear_channel->setDefaultPEARProtocols();
         $pear_channel->setBaseURL('REST1.0', 'http://pecl.php.net/rest/');
         $pear_channel->setBaseURL('REST1.1', 'http://pecl.php.net/rest/');
         $pear_channel->setValidationPackage('PEAR_Validator_PECL', '1.0');
         return $pear_channel;
     }
     if ($this->_getChannelFromAlias($channel) == 'doc.php.net') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $doc_channel = new PEAR_ChannelFile();
         $doc_channel->setServer('doc.php.net');
         $doc_channel->setAlias('phpdocs');
         $doc_channel->setSummary('PHP Documentation Team');
         $doc_channel->setDefaultPEARProtocols();
         $doc_channel->setBaseURL('REST1.0', 'http://doc.php.net/rest/');
         $doc_channel->setBaseURL('REST1.1', 'http://doc.php.net/rest/');
         $doc_channel->setBaseURL('REST1.3', 'http://doc.php.net/rest/');
         return $doc_channel;
     }
     if ($this->_getChannelFromAlias($channel) == '__uri') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $private = new PEAR_ChannelFile();
         $private->setName('__uri');
         $private->setDefaultPEARProtocols();
         $private->setBaseURL('REST1.0', '****');
         $private->setSummary('Pseudo-channel for static packages');
         return $private;
     }
     return $ch;
 }
Beispiel #4
0
 /**
  * @param string channel name
  * @param bool whether to strictly retrieve channel names
  * @return PEAR_ChannelFile|false
  * @access private
  */
 function &_getChannel($channel, $noaliases = false)
 {
     $ch = false;
     if ($this->_channelExists($channel, $noaliases)) {
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $ch =& PEAR_ChannelFile::fromArray($this->_channelInfo($channel, $noaliases));
     }
     if ($ch) {
         return $ch;
     }
     if ($this->_getChannelFromAlias($channel) == 'pear.php.net') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $pear_channel = new PEAR_ChannelFile();
         $pear_channel->setName('pear.php.net');
         $pear_channel->setAlias('pear');
         $pear_channel->setSummary('PHP Extension and Application Repository');
         $pear_channel->setDefaultPEARProtocols();
         $pear_channel->setBaseURL('REST1.0', 'http://pear.php.net/rest/');
         $pear_channel->setBaseURL('REST1.1', 'http://pear.php.net/rest/');
         return $pear_channel;
     }
     if ($this->_getChannelFromAlias($channel) == 'pecl.php.net') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $pear_channel = new PEAR_ChannelFile();
         $pear_channel->setName('pecl.php.net');
         $pear_channel->setAlias('pecl');
         $pear_channel->setSummary('PHP Extension Community Library');
         $pear_channel->setDefaultPEARProtocols();
         $pear_channel->setBaseURL('REST1.0', 'http://pecl.php.net/rest/');
         $pear_channel->setBaseURL('REST1.1', 'http://pecl.php.net/rest/');
         $pear_channel->setValidationPackage('PEAR_Validator_PECL', '1.0');
         return $pear_channel;
     }
     if ($this->_getChannelFromAlias($channel) == '__uri') {
         // the registry is not properly set up, so use defaults
         if (!class_exists('PEAR_ChannelFile')) {
             require_once 'PEAR/ChannelFile.php';
         }
         $private = new PEAR_ChannelFile();
         $private->setName('__uri');
         $private->addFunction('xmlrpc', '1.0', '****');
         $private->setSummary('Pseudo-channel for static packages');
         return $private;
     }
     return $ch;
 }