mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
171 lines
6.3 KiB
PHP
171 lines
6.3 KiB
PHP
<?php
|
|
// +---------------------------------------------------------------------+
|
|
// | PHP version 4.0 |
|
|
// +---------------------------------------------------------------------+
|
|
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group |
|
|
// +---------------------------------------------------------------------+
|
|
// | This source file is subject to version 2.0 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 areunable 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: Alexander Merz <alexander.merz@t-online.de> |
|
|
// | Christian Stocker <chregu@phant.ch> |
|
|
// +---------------------------------------------------------------------+
|
|
//
|
|
// $Id$
|
|
|
|
/**
|
|
* Interface for Config-Classes
|
|
*
|
|
* This interface provides a API for configuration data
|
|
*
|
|
* @author Alexander Merz <alexander.merz@t-online.de>
|
|
* @access public
|
|
* @version $Id$
|
|
* @package Config
|
|
*/
|
|
|
|
|
|
|
|
class Config_Container {
|
|
|
|
/**
|
|
* parses the input of the given data source
|
|
*
|
|
* The format and required content of $datasrc depends of the implementation.
|
|
* If the implemention requires additional data, for example a comment char, it have to
|
|
* deliver in a hash as second argument.
|
|
*
|
|
* @access public
|
|
* @param string $datasrc Name of the datasource to parse
|
|
* @param array $feature Contains a hash of features depending on the implentation
|
|
* @return mixed returns a PEAR_ERROR, if error occurs
|
|
*/
|
|
|
|
function parseInput( $datasrc = "", $feature = array() )
|
|
{
|
|
return new PEAR_Error("parseInput not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func parseInput
|
|
|
|
/**
|
|
* writes the data to the given data source or if not given to the datasource of parseInput
|
|
*
|
|
* See parseInput for $datasrc. If the second argument $preserve is true, the implementation
|
|
* should try to preserve the original format and data of the source except changed or added values.
|
|
* This mean to preserve for example comments in files or so.
|
|
*
|
|
* @access public
|
|
* @param string $datasrc Name of the datasource to parse
|
|
* @param boolean $preserve preserving behavior
|
|
* @return mixed returns PEAR_Error, if fails
|
|
* @see parseInput()
|
|
*/
|
|
|
|
function writeInput( $datasrc = "", $preserve = true )
|
|
{
|
|
return new PEAR_Error("writeInput not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func writeInput
|
|
|
|
/**
|
|
* returns all key-value-pairs of the given block
|
|
*
|
|
* The implementation should returns only the pairs of the given
|
|
* block, no names of subblocks.
|
|
* Blocks should be looks like this "/rootblock/child_block/grandchild_block/..."
|
|
* Take care of the leading slash - this is a "root"-slash according to the "root"-dir
|
|
* under Unix. If a config data source contains no blocks or using of blocks makes no sense
|
|
* the implementation have to support at least the root-slash.
|
|
*
|
|
* @access public
|
|
* @param string $block block path
|
|
* @return array returns a hash containing all values, but a PEAR_Error if fails
|
|
*/
|
|
|
|
function getValues( $block )
|
|
{
|
|
return new PEAR_Error("getValues not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func getValues
|
|
|
|
/**
|
|
* returns the name of all childblocks
|
|
*
|
|
* The implementation returns the name of all childblocks in the given block as a array.
|
|
* If a childblock contains also childblocks the value of the block have to be also a
|
|
* array containing all grandchild-blocks
|
|
*
|
|
* @access public
|
|
* @param string $block block path
|
|
* @return array returns a array containing all values, or a PEAR_Error, if fails
|
|
* @see getValues()
|
|
*/
|
|
|
|
function getBlocks( $block )
|
|
{
|
|
return new PEAR_Error("getBlocks not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func getBlocks
|
|
|
|
/**
|
|
* returns the value of the key in the given block
|
|
*
|
|
* The implementation returns the value of the key in the given block. If the key or the block not exist
|
|
* the implementation should return the default-value and create the block with the key and the default-value.
|
|
*
|
|
* @access public
|
|
* @param string $block block path
|
|
* @param string $key key
|
|
* @param string $default default-value
|
|
* @return mixed type depends of the value
|
|
* @see getValues()
|
|
*/
|
|
|
|
function getValue( $block, $key, $default = "" )
|
|
{
|
|
return new PEAR_Error("getValue not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func getValue
|
|
|
|
/**
|
|
* sets the value of the key in the given block
|
|
*
|
|
* The implementation sets the value of the key in the given block and returns value.
|
|
* If the key or the block not exist, the implementation should create the block with
|
|
* the key and the value.
|
|
*
|
|
* @access public
|
|
* @param string $block block path
|
|
* @param string $key key
|
|
* @param string $value value to set
|
|
* @return mixed type depends on $value
|
|
* @see getValue()
|
|
*/
|
|
|
|
function setValue( $block, $key, $value )
|
|
{
|
|
return new PEAR_Error("setValue not implemented", 1, PEAR_ERROR_RETURN, null,
|
|
null );
|
|
} // end func setValue
|
|
|
|
/**
|
|
* Imports the requested datafields as object variables if allowed
|
|
*
|
|
* @param array List of fields to be imported as object variables
|
|
* @param array List of allowed datafields
|
|
*/
|
|
|
|
function setFeatures($requested, $allowed) {
|
|
foreach ($allowed as $k => $field)
|
|
if (isset($requested[$field]))
|
|
$this->feature[$field] = $requested[$field];
|
|
|
|
} // end func setFeatures
|
|
}
|
|
|
|
?>
|