当前位置: 首页>>代码示例>>PHP>>正文


PHP PEAR_PackageFile::getPackage方法代码示例

本文整理汇总了PHP中PEAR_PackageFile::getPackage方法的典型用法代码示例。如果您正苦于以下问题:PHP PEAR_PackageFile::getPackage方法的具体用法?PHP PEAR_PackageFile::getPackage怎么用?PHP PEAR_PackageFile::getPackage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PEAR_PackageFile的用法示例。


在下文中一共展示了PEAR_PackageFile::getPackage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getPackage

 function getPackage()
 {
     if (isset($this->_packagefile)) {
         return $this->_packagefile->getPackage();
     } elseif (isset($this->_downloadURL['info'])) {
         return $this->_downloadURL['info']->getPackage();
     }
     return false;
 }
开发者ID:upmunspel,项目名称:abiturient,代码行数:9,代码来源:Package.php

示例2: doInstall

 function doInstall($command, $options, $params)
 {
     if (!class_exists('PEAR_PackageFile')) {
         require_once 'PEAR/PackageFile.php';
     }
     if (empty($this->installer)) {
         $this->installer =& $this->getInstaller($this->ui);
     }
     if ($command == 'upgrade' || $command == 'upgrade-all') {
         $options['upgrade'] = true;
     } else {
         $packages = $params;
     }
     if (isset($options['installroot']) && isset($options['packagingroot'])) {
         return $this->raiseError('ERROR: cannot use both --installroot and --packagingroot');
     }
     $reg =& $this->config->getRegistry();
     $instreg =& $reg;
     // instreg used to check if package is installed
     if (isset($options['packagingroot']) && !isset($options['upgrade'])) {
         $packrootphp_dir = $this->installer->_prependPath($this->config->get('php_dir', null, 'pear.php.net'), $options['packagingroot']);
         $instreg = new PEAR_Registry($packrootphp_dir);
         // other instreg!
         if ($this->config->get('verbose') > 2) {
             $this->ui->outputData('using package root: ' . $options['packagingroot']);
         }
     }
     $abstractpackages = array();
     $otherpackages = array();
     // parse params
     PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
     foreach ($params as $param) {
         if (strpos($param, 'http://') === 0) {
             $otherpackages[] = $param;
             continue;
         }
         if (strpos($param, 'channel://') === false && @file_exists($param)) {
             if (isset($options['force'])) {
                 $otherpackages[] = $param;
                 continue;
             }
             $pkg = new PEAR_PackageFile($this->config);
             $pf = $pkg->fromAnyFile($param, PEAR_VALIDATE_DOWNLOADING);
             if (PEAR::isError($pf)) {
                 $otherpackages[] = $param;
                 continue;
             }
             if ($reg->packageExists($pf->getPackage(), $pf->getChannel()) && version_compare($pf->getVersion(), $reg->packageInfo($pf->getPackage(), 'version', $pf->getChannel()), '<=')) {
                 if ($this->config->get('verbose')) {
                     $this->ui->outputData('Ignoring installed package ' . $reg->parsedPackageNameToString(array('package' => $pf->getPackage(), 'channel' => $pf->getChannel()), true));
                 }
                 continue;
             }
             $otherpackages[] = $param;
             continue;
         }
         $e = $reg->parsePackageName($param, $this->config->get('default_channel'));
         if (PEAR::isError($e)) {
             $otherpackages[] = $param;
         } else {
             $abstractpackages[] = $e;
         }
     }
     PEAR::staticPopErrorHandling();
     // if there are any local package .tgz or remote static url, we can't
     // filter.  The filter only works for abstract packages
     if (count($abstractpackages) && !isset($options['force'])) {
         // when not being forced, only do necessary upgrades/installs
         if (isset($options['upgrade'])) {
             $abstractpackages = $this->_filterUptodatePackages($abstractpackages, $command);
         } else {
             foreach ($abstractpackages as $i => $package) {
                 if (isset($package['group'])) {
                     // do not filter out install groups
                     continue;
                 }
                 if ($instreg->packageExists($package['package'], $package['channel'])) {
                     if ($this->config->get('verbose')) {
                         $this->ui->outputData('Ignoring installed package ' . $reg->parsedPackageNameToString($package, true));
                     }
                     unset($abstractpackages[$i]);
                 }
             }
         }
         $abstractpackages = array_map(array($reg, 'parsedPackageNameToString'), $abstractpackages);
     } elseif (count($abstractpackages)) {
         $abstractpackages = array_map(array($reg, 'parsedPackageNameToString'), $abstractpackages);
     }
     $packages = array_merge($abstractpackages, $otherpackages);
     if (!count($packages)) {
         $this->ui->outputData('Nothing to ' . $command);
         return true;
     }
     $this->downloader =& $this->getDownloader($this->ui, $options, $this->config);
     $errors = array();
     $binaries = array();
     $downloaded = array();
     $downloaded =& $this->downloader->download($packages);
     if (PEAR::isError($downloaded)) {
         return $this->raiseError($downloaded);
//.........这里部分代码省略.........
开发者ID:Esleelkartea,项目名称:kz-adeada-talleres-electricos-,代码行数:101,代码来源:Install.php

示例3: validateVersion

 /**
  * @access protected
  */
 function validateVersion()
 {
     if ($this->_state != PEAR_VALIDATE_PACKAGING) {
         if (!$this->validVersion($this->_packagexml->getVersion())) {
             $this->_addFailure('version', 'Invalid version number "' . $this->_packagexml->getVersion() . '"');
         }
         return false;
     }
     $version = $this->_packagexml->getVersion();
     $versioncomponents = explode('.', $version);
     if (count($versioncomponents) != 3) {
         $this->_addWarning('version', 'A version number should have 3 decimals (x.y.z)');
         return true;
     }
     $name = $this->_packagexml->getPackage();
     // version must be based upon state
     switch ($this->_packagexml->getState()) {
         case 'snapshot':
             return true;
         case 'devel':
             if ($versioncomponents[0] . 'a' == '0a') {
                 return true;
             }
             if ($versioncomponents[0] == 0) {
                 $versioncomponents[0] = '0';
                 $this->_addWarning('version', 'version "' . $version . '" should be "' . implode('.', $versioncomponents) . '"');
             } else {
                 $this->_addWarning('version', 'packages with devel stability must be < version 1.0.0');
             }
             return true;
             break;
         case 'alpha':
         case 'beta':
             // check for a package that extends a package,
             // like Foo and Foo2
             if (!$this->_packagexml->getExtends()) {
                 if ($versioncomponents[0] == '1') {
                     if ($versioncomponents[2][0] == '0') {
                         if ($versioncomponents[2] == '0') {
                             // version 1.*.0000
                             $this->_addWarning('version', 'version 1.' . $versioncomponents[1] . '.0 probably should not be alpha or beta');
                             return true;
                         } elseif (strlen($versioncomponents[2]) > 1) {
                             // version 1.*.0RC1 or 1.*.0beta24 etc.
                             return true;
                         } else {
                             // version 1.*.0
                             $this->_addWarning('version', 'version 1.' . $versioncomponents[1] . '.0 probably should not be alpha or beta');
                             return true;
                         }
                     } else {
                         $this->_addWarning('version', 'bugfix versions (1.3.x where x > 0) probably should ' . 'not be alpha or beta');
                         return true;
                     }
                 } elseif ($versioncomponents[0] != '0') {
                     $this->_addWarning('version', 'major versions greater than 1 are not allowed for packages ' . 'without an <extends> tag or an identical postfix (foo2 v2.0.0)');
                     return true;
                 }
                 if ($versioncomponents[0] . 'a' == '0a') {
                     return true;
                 }
                 if ($versioncomponents[0] == 0) {
                     $versioncomponents[0] = '0';
                     $this->_addWarning('version', 'version "' . $version . '" should be "' . implode('.', $versioncomponents) . '"');
                 }
             } else {
                 $vlen = strlen($versioncomponents[0] . '');
                 $majver = substr($name, strlen($name) - $vlen);
                 while ($majver && !is_numeric($majver[0])) {
                     $majver = substr($majver, 1);
                 }
                 if ($versioncomponents[0] != 0 && $majver != $versioncomponents[0]) {
                     $this->_addWarning('version', 'first version number "' . $versioncomponents[0] . '" must match the postfix of ' . 'package name "' . $name . '" (' . $majver . ')');
                     return true;
                 }
                 if ($versioncomponents[0] == $majver) {
                     if ($versioncomponents[2][0] == '0') {
                         if ($versioncomponents[2] == '0') {
                             // version 2.*.0000
                             $this->_addWarning('version', "version {$majver}." . $versioncomponents[1] . '.0 probably should not be alpha or beta');
                             return false;
                         } elseif (strlen($versioncomponents[2]) > 1) {
                             // version 2.*.0RC1 or 2.*.0beta24 etc.
                             return true;
                         } else {
                             // version 2.*.0
                             $this->_addWarning('version', "version {$majver}." . $versioncomponents[1] . '.0 cannot be alpha or beta');
                             return true;
                         }
                     } else {
                         $this->_addWarning('version', "bugfix versions ({$majver}.x.y where y > 0) should " . 'not be alpha or beta');
                         return true;
                     }
                 } elseif ($versioncomponents[0] != '0') {
                     $this->_addWarning('version', "only versions 0.x.y and {$majver}.x.y are allowed for alpha/beta releases");
                     return true;
                 }
//.........这里部分代码省略.........
开发者ID:vojtajina,项目名称:sitellite,代码行数:101,代码来源:Validate.php


注:本文中的PEAR_PackageFile::getPackage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。