| Viewing file:  pear.php (3.76 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
<?php/**
 * File containing the ezcBaseMetaDataPearReader class.
 *
 * @package Base
 * @version 1.8
 * @copyright Copyright (C) 2005-2009 eZ Systems AS. All rights reserved.
 * @license http://ez.no/licenses/new_bsd New BSD License
 */
 
 @require 'PEAR/Registry.php';
 
 /**
 * Base class implements ways of fetching information about the installed
 * eZ Components when installed as tarball.
 *
 * Note: there are lots of @ used here, because PEAR still lives in the stone
 * age with their PHP 3 code and general liberal use of throwing warnings and
 * notices.
 *
 * @package Base
 * @version 1.8
 * @mainclass
 */
 class ezcBaseMetaDataPearReader
 {
 /**
 * Stores the PEAR_Registry to query for information
 *
 * @var PEAR_Registry
 */
 private $registry;
 
 /**
 * Creates the reader object and initialized the registry for querying
 */
 public function __construct()
 {
 @$this->registry = new PEAR_Registry;
 }
 
 /**
 * Returns the version string for the installed eZ Components bundle.
 *
 * A version string such as "2008.2.2" is returned.
 *
 * @return string
 */
 public function getBundleVersion()
 {
 @$packageInfo = $this->registry->packageInfo( 'ezcomponents', null, 'components.ez.no' );
 return $packageInfo['version']['release'];
 }
 
 /**
 * Returns a PHP version string that describes the required PHP version for
 * this installed eZ Components bundle.
 *
 * @return string
 */
 public function getRequiredPhpVersion()
 {
 @$packageInfo = $this->registry->packageInfo( 'ezcomponents', null, 'components.ez.no' );
 if ( array_key_exists( 'required', $packageInfo['dependencies'] ) )
 {
 return $packageInfo['dependencies']['required']['php']['min'];
 }
 return $packageInfo['dependencies']['php']['min'];
 }
 
 /**
 * Returns whether $componentName is installed
 *
 * Checks the PEAR registry whether the component is there.
 *
 * @return bool
 */
 public function isComponentInstalled( $componentName )
 {
 @$packageInfo = $this->registry->packageInfo( $componentName, null, 'components.ez.no' );
 return is_array( $packageInfo );
 }
 
 /**
 * Returns the version string of the available $componentName or false when
 * the component is not installed.
 *
 * @return string
 */
 public function getComponentVersion( $componentName )
 {
 @$packageInfo = $this->registry->packageInfo( $componentName, null, 'components.ez.no' );
 $release = $packageInfo['version']['release'];
 return $release === null ? false : $release;
 }
 
 /**
 * Returns a list of components that $componentName depends on.
 *
 * If $componentName is left empty, all installed components are returned.
 *
 * The returned array has as keys the component names, and as values the
 * version of the components.
 *
 * @return array(string=>string).
 */
 public function getComponentDependencies( $componentName = 'ezcomponents' )
 {
 @$packageInfo = $this->registry->packageInfo( $componentName, 'dependencies', 'components.ez.no' );
 if ( isset( $packageInfo['required']['package'] ) )
 {
 $deps = array();
 if ( isset( $packageInfo['required']['package']['name'] ) )
 {
 $deps[$packageInfo['required']['package']['name']] = $packageInfo['required']['package']['min'];
 }
 else
 {
 foreach ( $packageInfo['required']['package'] as $package )
 {
 $deps[$package['name']] = $package['min'];
 }
 }
 return $deps;
 }
 return array();
 }
 }
 ?>
 
 |