summaryrefslogtreecommitdiff
path: root/pear/PEAR/Config.php
diff options
context:
space:
mode:
Diffstat (limited to 'pear/PEAR/Config.php')
-rw-r--r--pear/PEAR/Config.php222
1 files changed, 0 insertions, 222 deletions
diff --git a/pear/PEAR/Config.php b/pear/PEAR/Config.php
deleted file mode 100644
index 9e002f6bc1..0000000000
--- a/pear/PEAR/Config.php
+++ /dev/null
@@ -1,222 +0,0 @@
-<?php
-//
-// +----------------------------------------------------------------------+
-// | PHP Version 4 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2002 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 2.02 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available at through the world-wide-web at |
-// | http://www.php.net/license/2_02.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Authors: Stig Bakken <ssb@fast.no> |
-// | |
-// +----------------------------------------------------------------------+
-//
-// $Id$
-
-require_once 'PEAR.php';
-
-/**
- * This is a class for storing simple configuration values keeping
- * track of which are system-defined (defaulted) and which are
- * user-defined. By default, only user-defined settings are stored
- * back to the user's configuration file.
- *
- * Configuration member is a simple associative array. Used keys:
- *
- * master_server which server to query for mirror lists etc.
- * server which server/mirror we're currently using
- * username PEAR username
- * password PEAR password (stored base64-encoded)
- * php_dir Where to install .php files
- * ext_dir Directory to install compiled libs in
- * doc_dir Directory to install documentation in
- *
- */
-class PEAR_Config extends PEAR
-{
- // {{{ properties
-
- var $defaults_file = '';
-
- var $config_file = '';
-
- var $configuration = array();
-
- var $defaulted = array();
-
- // }}}
-
- // {{{ PEAR_Config([file], [defaults_file])
-
- function PEAR_Config($file = '', $defaults_file = '')
- {
- $this->PEAR();
- $this->config_file = $file;
- $this->defaults_file = $defaults_file;
- if ($file && file_exists($file)) {
- $this->readConfigFile($file);
- }
- if ($defaults_file && file_exists($defaults_file)) {
- $this->mergeConfigFile($defaults_file, false, true);
- }
- }
-
- // }}}
-
- // {{{ readConfigFile([file], [defaults])
-
- function readConfigFile($file = null, $defaults = false)
- {
- if ($file === null) {
- $file = $this->config_file;
- }
- $fp = @fopen($file, "r");
- if (!$fp) {
- return $this->raiseError($php_errormsg);
- }
- $size = filesize($file);
- $contents = fread($fp, $size);
- $data = unserialize($contents);
- if ($data === false && $size > 1) {
- return $this->raiseError("PEAR_Config::readConfigFile: bad data");
- }
- $this->configuration = $data;
- if ($defaults) {
- foreach ($data as $key => $value) {
- $this->defaulted[$key] = true;
- }
- }
- }
-
- // }}}
- // {{{ mergeConfigFile(file, [override], [defaults])
-
- function mergeConfigFile($file, $override = true, $defaults = false)
- {
- $fp = @fopen($file, "r");
- if (!$fp) {
- return $this->raiseError($php_errormsg);
- }
- $contents = fread($fp, filesize($file));
- $data = unserialize($contents);
- if ($data === false) {
- return $this->raiseError("PEAR_Config::mergeConfigFile: bad data");
- }
- foreach ($data as $key => $value) {
- if (isset($this->configuration[$key]) && !$override) {
- continue;
- }
- if ($defaults) {
- $this->defaulted[$key] = true;
- }
- $this->configuration[$key] = $value;
- }
- }
-
- // }}}
- // {{{ writeConfigFile([file], [what_keys])
-
- function writeConfigFile($file = null, $what_keys = 'userdefined')
- {
- if ($what_keys == 'both') {
- $this->writeConfigFile($file, 'userdefined');
- $this->writeConfigFile($file, 'default');
- return;
- }
- if ($file === null) {
- if ($what_keys == 'default') {
- $file = $this->defaults_file;
- } else {
- $file = $this->config_file;
- }
- }
- if ($what_keys == 'default') {
- $keys_to_store = array_intersect(array_keys($this->configuration),
- array_keys($this->defaulted));
- } elseif ($what_keys == 'all') {
- $keys_to_store = array_keys($this->configuration);
- } else { // user-defined keys
- $keys_to_store = array_diff(array_keys($this->configuration),
- array_keys($this->defaulted));
- }
- $data = array();
- foreach ($keys_to_store as $key) {
- $data[$key] = $this->configuration[$key];
- }
- $fp = @fopen($file, "w");
- if (!$fp) {
- return $this->raiseError("PEAR_Config::writeConfigFile fopen('$file','w') failed");
- }
- if (!@fwrite($fp, serialize($data))) {
- return $this->raiseError("PEAR_Config::writeConfigFile serialize failed");
- }
- return true;
- }
-
- // }}}
- // {{{ get(key)
-
- function get($key)
- {
- return @$this->configuration[$key];
- }
-
- // }}}
- // {{{ set(key, value, [default])
-
- function set($key, $value, $default = false)
- {
- $this->configuration[$key] = $value;
- if ($default) {
- $this->defaulted[$key] = true;
- } elseif (isset($this->defaulted[$key])) {
- unset($this->defaulted[$key]);
- }
- }
-
- // }}}
- // {{{ getKeys()
-
- function getKeys()
- {
- return array_keys($this->configuration);
- }
-
- // }}}
- // {{{ toDefault(key)
-
- function toDefault($key)
- {
- if (file_exists($this->defaults_file)) {
- // re-reads the defaults file each time, but hey it works
- unset($this->configuration[$key]);
- $this->mergeConfigFile($this->defaults_file, false, true);
- }
- }
-
- // }}}
- // {{{ isDefaulted(key)
-
- function isDefaulted($key)
- {
- return isset($this->defaulted[$key]);
- }
-
- // }}}
- // {{{ isDefined(key)
-
- function isDefined($key)
- {
- return isset($this->configuration[$key]);
- }
-
- // }}}
-}
-
-?> \ No newline at end of file