本文整理汇总了PHP中PEAR_Config::getRemote方法的典型用法代码示例。如果您正苦于以下问题:PHP PEAR_Config::getRemote方法的具体用法?PHP PEAR_Config::getRemote怎么用?PHP PEAR_Config::getRemote使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PEAR_Config
的用法示例。
在下文中一共展示了PEAR_Config::getRemote方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: packageInfo
/**
* (non-PHPdoc)
* @see lib/Faett/Core/Interfaces/Faett_Core_Interfaces_Service#packageInfo($packageName, $channel)
*/
public function packageInfo($packageName, $channel)
{
// store the default channel
$savechannel = $this->_config->get('default_channel');
// check if the cannel already exists
if ($this->_registry->channelExists($channel)) {
$this->_config->set('default_channel', $channel);
} else {
// throw a new exception
throw Faett_Core_Exceptions_UnknownChannelException::create('Channel ' . $channel . ' does not exist');
}
// load the channel from the registry
$chan = $this->_registry->getChannel($channel);
// initialize a REST command for checking the channel's state
$cmd = new PEAR_Command_Remote($this->_ui, $this->_config);
if (PEAR::isError($e = $cmd->_checkChannelForStatus($channel, $chan))) {
// reset the default channel
$this->_config->set('default_channel', $savechannel);
// throw a new exception
throw Faett_Core_Exceptions_UnknownChannelStateException::create($e->getMessage());
}
// get the channel's base URL
$base = $chan->getBaseURL('REST1.0', $this->_config->get('preferred_mirror'));
// check if the channel's server is REST enabled
$restSupport = $chan->supportsREST($this->_config->get('preferred_mirror'));
// check if the channel is REST enabled
if ($restSupport && $base) {
// load the channel data and the package information
$rest = $this->_config->getREST('1.0', array());
$info = $rest->packageInfo($base, $packageName);
} else {
$r = $this->_config->getRemote();
$info = $r->call('package.info', $packageName);
}
// check if the package information was loaded successfully
if (PEAR::isError($info)) {
// reset the default channel
$this->_config->set('default_channel', $savechannel);
// throw a new exception
throw Faett_Core_Exceptions_PackageInfoException::create($info->getMessage());
}
// if no packge name was found log an error message
if (!isset($info['name'])) {
// reset the default channel
$this->_config->set('default_channel', $savechannel);
// throw a new exception
throw Faett_Core_Exceptions_PackageInfoException::create('Can\'t find a package name');
}
// check if the package is installed
$installed = $this->_registry->packageInfo($info['name'], null, $channel);
// if yes, set the information
$info['installed'] = $installed['version'] ? $installed['version'] : '';
if (is_array($info['installed'])) {
$info['installed'] = $info['installed']['release'];
}
// return the package information
return $info;
}
示例2: getPackageInfo
/**
* Returns the latest information about the given package.
*
* @access protected
* @return boolean true on success, false on error
* @since 0.4.0a1
* @throws PEAR_PACKAGEUPDATE_ERROR_NOPACKAGE,
* PEAR_PACKAGEUPDATE_ERROR_NOCHANNEL,
* PEAR_PACKAGEUPDATE_ERROR_NOINFO
*/
function getPackageInfo()
{
// Only check once.
if (isset($this->latestVersion) && isset($this->info)) {
return true;
}
// Make sure the channel and package are set.
if (empty($this->packageName)) {
$this->pushError(PEAR_PACKAGEUPDATE_ERROR_NOPACKAGE);
return false;
}
if (empty($this->channel)) {
$this->pushError(PEAR_PACKAGEUPDATE_ERROR_NOCHANNEL);
return false;
}
// Create a config object.
$config = new PEAR_Config();
// Get the config's registry object.
$reg = $config->getRegistry();
// Parse the package name.
$parsed = $reg->parsePackageName($this->channel . '/' . $this->packageName);
// Check for errors.
if (PEAR::isError($parsed)) {
$this->pushError($parsed);
return false;
}
// Get a PEAR_Remote instance.
$r = $config->getRemote();
// Get the package info.
$info = $r->call('package.info', $parsed['package']);
// Check to make sure the package was found.
if (PEAR::isError($info)) {
$this->pushError(PEAR_PACKAGEUPDATE_ERROR_NOINFO, NULL, array('packagename' => $this->packageName));
return false;
}
// Get the installed version of the package.
$this->instVersion = $reg->packageInfo($parsed['package'], 'version', $parsed['channel']);
// If the package is not installed, create a dummy version.
if (empty($this->instVersion)) {
$this->instVersion = '0.0.0';
}
// Pull out the latest information.
$this->latestVersion = reset(array_keys($info['releases']));
$this->info = reset($info['releases']);
return true;
}