<?php 
 
/* 
 * Queasy PHP Framework - Configuration 
 * 
 * (c) Vitaly Demyanenko <[email protected]> 
 * 
 * For the full copyright and license information, please view the LICENSE file that was distributed with this source code. 
 */ 
 
namespace queasy\config; 
 
/** 
 * Configuration interface 
 */ 
interface ConfigInterface extends \Iterator, \ArrayAccess, \Countable 
{ 
    /** 
     * Get an option value from configuration by name provided, or return $default, or null if $default not set. 
     * 
     * @param string $name Config option name 
     * @param mixed|null $default Value to be returned if option $name is missing 
     * 
     * @return mixed Option value 
     */ 
    function get($name, $default = null); 
 
    /** 
     * Get an option value from configuration by name provided. 
     * 
     * @param string $name Config option name 
     * 
     * @return mixed Option value or $default if $name option is missing 
     * 
     * @throws ConfigException When $name option is missing 
     */ 
    function need($name); 
 
    /** 
     * Get an option value from configuration by option name provided like a object property. 
     * 
     * @param string $name Option name 
     * 
     * @return mixed|null Option value or null if option is missing 
     */ 
    function __get($name); 
 
    /** 
     * Set an option value. 
     * 
     * @param string $name Option name 
     * @param mixed $value Option value 
     */ 
    function __set($name, $value); 
 
    /** 
     * Check if an option exists in config. 
     * 
     * @param string $name Option name 
     * 
     * @return bool True if an option exists, false otherwise 
     */ 
    function __isset($name); 
 
    /** 
     * Unset option in config. 
     * 
     * @param string $name Option name 
     */ 
    function __unset($name); 
 
    /** 
     * Call class instance as a get() function. 
     * 
     * @param string $name Option name 
     * @param string $default Default option value (optional) 
     * 
     * @return mixed Option value or $default if $name option is missing 
     */ 
    function __invoke($name, $default = null); 
 
    /** 
     * Search for config keys using regular expression. 
     * 
     * @param string $regex Regular expression 
     * 
     * @return ConfigInterface Config instance containing key/option pairs found. 
     */ 
    public function regex($regex); 
 
    /** 
     * Search for config keys using regular expression. 
     * 
     * @param array|ArrayAccess|Iterator $array Array to merge with 
     */ 
    public function merge($array); 
 
    /** 
     * Convert all configuration structure into a regular array. 
     * 
     * @return array Configuration represented as a regular array 
     */ 
    function toArray(); 
} 
 
 
 |