getRegistry() public method

public getRegistry ( $use = null ) : PEAR_Registry
return PEAR_Registry
Example #1
0
 /**
  * @param PEAR_Config
  */
 function PEAR_Downloader_Package(&$downloader)
 {
     $this->_downloader =& $downloader;
     $this->_config =& $this->_downloader->config;
     $this->_registry =& $this->_config->getRegistry();
     $this->_valid = $this->_analyzed = false;
 }
 /**
  * Set up the registry/location of dependency DB
  * @param PEAR_Config|false
  * @param string|false full path to the dependency database, or false to use default
  */
 function setConfig(&$config, $depdb = false)
 {
     if (!$config) {
         $this->_config =& PEAR_Config::singleton();
     } else {
         $this->_config =& $config;
     }
     $this->_registry =& $this->_config->getRegistry();
     if (!$depdb) {
         $this->_depdb = $this->_config->get('php_dir', null, 'pear.php.net') . DIRECTORY_SEPARATOR . '.depdb';
     } else {
         $this->_depdb = $depdb;
     }
     $this->_lockfile = dirname($this->_depdb) . DIRECTORY_SEPARATOR . '.depdblock';
 }
Example #3
0
 /**
  * @param PEAR_Downloader
  */
 function PEAR_Downloader_Package(&$downloader)
 {
     $this->_downloader =& $downloader;
     $this->_config =& $this->_downloader->config;
     $this->_registry =& $this->_config->getRegistry();
     $options = $downloader->getOptions();
     if (isset($options['packagingroot'])) {
         $this->_config->setInstallRoot($options['packagingroot']);
         $this->_installRegistry =& $this->_config->getRegistry();
         $this->_config->setInstallRoot(false);
     } else {
         $this->_installRegistry =& $this->_registry;
     }
     $this->_valid = $this->_analyzed = false;
 }
Example #4
0
 /**
  * Constructor.
  *
  * Searches all installed applications and libraries for migration
  * directories and builds lists of migrateable modules and directories.
  *
  * @param string $basedir   Base directory of a Git checkout. If provided
  *                          a framework/ sub directory is searched for
  *                          migration scripts too.
  * @param string $pearconf  Path to a PEAR configuration file.
  */
 public function __construct($basedir = null, $pearconf = null)
 {
     // Loop through all applications.
     foreach ($GLOBALS['registry']->listAllApps() as $app) {
         $dir = $GLOBALS['registry']->get('fileroot', $app) . '/migration';
         if (is_dir($dir)) {
             $this->apps[] = $app;
             $this->_lower[] = Horde_String::lower($app);
             $this->dirs[] = realpath($dir);
         }
     }
     // Silence PEAR errors.
     $old_error_reporting = error_reporting();
     error_reporting($old_error_reporting & ~E_DEPRECATED);
     $pear = new PEAR_Config($pearconf);
     // Loop through local framework checkout.
     if ($basedir) {
         $packageFile = new PEAR_PackageFile($pear);
         foreach (glob($basedir . '/framework/*/migration') as $dir) {
             $package = $packageFile->fromPackageFile(dirname($dir) . '/package.xml', PEAR_VALIDATE_NORMAL);
             if ($package instanceof PEAR_Error) {
                 Horde::log(sprintf('%s: %s', $package->getMessage(), print_r($package->getUserInfo(), true)), Horde_Log::ERR);
                 continue;
             }
             $this->apps[] = $package->getName();
             $this->_lower[] = Horde_String::lower($package->getName());
             $this->dirs[] = realpath($dir);
         }
     }
     // Loop through installed PEAR packages.
     $registry = $pear->getRegistry();
     foreach (glob($pear->get('data_dir') . '/*/migration') as $dir) {
         $package = $registry->getPackage(basename(dirname($dir)), 'pear.horde.org');
         if ($package == false) {
             Horde::log("Ignoring package in directory {$dir}", Horde_Log::WARN);
             continue;
         }
         $app = $package->getName();
         if (!in_array($app, $this->apps)) {
             $this->apps[] = $app;
             $this->_lower[] = Horde_String::lower($app);
             $this->dirs[] = realpath($dir);
         }
     }
     error_reporting($old_error_reporting);
 }
Example #5
0
    $result = "Database support is ok";
    $status = OK;
}
print_row("Database Support", $result, $status);
// PEAR
$have_pear = false;
if (!($pear_dir = find_path($path_list, "PEAR"))) {
    $result = "Not installed.  The PEAR extension is required by several other " . "PHP extensions that Maia needs.  See <a href=\"http://pear.php.net/\">this page</a> " . "for more information about downloading and installing PEAR.";
    $status = ERROR;
} else {
    // include_once ("PEAR/Remote.php");      // PEAR::Remote
    include_once "PEAR/Config.php";
    // PEAR::Registry
    $have_pear = true;
    $pear = new PEAR_Config();
    $pear_reg = $pear->getRegistry();
    $pear_info = $pear_reg->packageInfo("PEAR");
    $pear_list = $pear_reg->listPackages();
    $pear_version = is_array($pear_info["version"]) ? $pear_info["version"]["release"] : $pear_info["version"];
    $result = $pear_version;
    $status = OK;
}
print_row("PEAR", $result, $status);
// PEAR::Mail_Mime
if ($have_pear) {
    if (!in_array("mail_mime", $pear_list)) {
        $result = "Not installed.  This PHP extension is required to decode " . "MIME-structured e-mail.  Use <b>pear install Mail_Mime</b> to " . "install this.";
        $status = ERROR;
    } else {
        $info = $pear_reg->packageInfo("Mail_Mime");
        $result = is_array($info["version"]) ? $info["version"]["release"] : $info["version"];
Example #6
0
 /**
  * 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;
 }