Login   Register  
PHP Classes
elePHPant
Icontem

File: core/classes/Config.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Marius Zadara  >  PAX  >  core/classes/Config.class.php  >  Download  
File: core/classes/Config.class.php
Role: Class source
Content type: text/plain
Description: Config class
Class: PAX
Interpret XML command scripts with PHP classes
Author: By
Last change: New version
Date: 5 years ago
Size: 5,055 bytes
 

Contents

Class file image Download
<?php

/**
 * Page DocBlock definition
 * @package org.zadara.marius.pax
 */


/**
 * Class definition for a hash-map.
 * This class will contain associations between variables and theirs value. 
 * 
 * @author Marius Zadara <marius@zadara.org>
 * @category Classes
 * @copyright (C) 2008-2009 Marius Zadara
 * @license Free for non-comercial use
 * @package org.zadara.marius.pax
 * @final 
 * @see PAXObject
 * @see IConfig
 * @version 6.0
 * @since 5.0 
 */
final class Config extends PAXObject implements IConfig 
{
    
/**
     * The hash-map associations array.
     *
     * @access private
     * @var array
     */
    
private $hashmap;

    
/**
     * Class constructor.
     *
     * @access public
     */
    
public function __construct()
    {
        
// call the parent's constructor first
        
parent::__construct();
        
        
// init the hash-map
        // at this moment set it to NULL to preserve memory
        
$this->hashmap null;
    }
    
    
/**
     * Method to set a variable to a value in the hash-map.
     * If the key already exists, the value wil be updated.
     *
     * @access public
     * @param string <b>$variable</b> The variable name
     * @param mixed <b>$value</b> The variable value
     * @return void
     */
    
public function set($variable$value)
    {
        
// check the hash-map    
        
if (is_null($this->hashmap))
            
$this->hashmap = array();
        
        
// set the variable to its value
        
$this->hashmap[$variable] = $value;
    }
    
    
/**
     * Method to get the variabile value from the hash-map.
     *
     * @access public
     * @param string <b>$variable</b> The variable name
     * @param mixed <b>$defaultValue</b> The variable default value (used in case the variabile has not been found)
     * @return mixed The value of the variables as defined 
     */
    
public function get($variable$defaultValue=NULL)
    {
        
// if the hash-map has not been set, 
        // return the default value
        
if (is_null($this->hashmap))
            return 
$defaultValue;
        
        
// if the variable is not set in the hash-map,
        // return the default value
        
if (!isset($this->hashmap[$variable]))
            return 
$defaultValue;
            
        
// at this point, the variable is set
        // return its value from the hash-map
        
return $this->hashmap[$variable];
    }    
    
    
/**
     * Method to return only the keys.
     *
     * @access public
     * @return array The list of all the keys 
     */
    
public function getKeys()
    {
        if (
is_null($this->hashmap))
            return 
false;

        if (!
is_array($this->hashmap))
            return 
false;
            
        return 
array_keys($this->hashmap);    
    }

    
    
/**
     * Method to return only the values.
     *
     * @access public
     * @return array The list of all the values
     */
    
public function getValues()
    {
        if (
is_null($this->hashmap))
            return 
false;

        if (!
is_array($this->hashmap))
            return 
false;
            
        return 
array_values($this->hashmap);            
    }

    
    
/**
     * Method to delete a key.
     *
     * @access public
     * @param string <b>$key</b> The name of the key
     * @return boolean True/False if the key has been deleted
     */
    
public function deleteKey($key)
    {
        if (
is_null($this->hashmap))
            return 
false;
            
        if (!
is_array($this->hashmap))
            return 
false;
            
        if (isset(
$this->hashmap[$key]))
        {
            unset(
$this->hashmap[$key]);
            return 
true;
        }
        
        return 
false;
    }
    
    
    
/**
     * Method to delete the keys matching a pattern.
     * The match is performed case insensitive.
     *
     * @access public
     * @param string <b>$pattern</b> The pattern to use when searching for the keys
     * @return boolean True/False if the key(s) has been deleted
     */
    
public function deleteKeysLike($pattern)
    {
        if (
is_null($this->hashmap))
            return 
false;
            
        if (!
is_array($this->hashmap))
            return 
false;
        
        
$keysDeleted false;

        
// parse the hash-map list
        
foreach ($this->hashmap as $keyName => $keyValue)
        {
            
// search the pattern inside the key name
            
if (stripos($keyName$pattern) !== false)
            {
                
// if found, then try to delete the key
                
if ($this->deleteKey($keyName))
                    
$keysDeleted true;
            }
        }

        return 
$keysDeleted;
    }
    
    
    
/**
     * Method to get the key-value pairs from the hash-map.
     * Due to construction of the hash-map, will return the content of te hash-map.
     * 
     * @access public
     * @return array The object's content
     */
    
public function getKeyValuePairs()
    {
        if (
is_null($this->hashmap))
            return 
false;
            
        if (!
is_array($this->hashmap))
            return 
false;

        return 
$this->hashmap;
    }
    
    
    
/**
     * Method to search if a key exists.
     * 
     * @access public 
     * @param string <b>$key</b> The key searched
     * @return boolean True/False if the key has been found or not
     */
    
public function keyExists($key)
    {
        if (
is_null($this->hashmap))
            return 
false;
            
        if (!
is_array($this->hashmap))
            return 
false;

        return isset(
$this->hashmap[$key]);
    }
    
    
    
    
    
/**
     * Class destructor.
     *
     * @access public
     */
    
function __destruct()
    {
        
// nothing special to do at this moment
    
}
}


?>