public function config($key) {
        $keys   = explode('.', $key);
        $config = func_num_args() === 1 ? $this['config'] : func_get_arg(1);

        while (($k = array_shift($keys)) !== null) {
            if (array_key_exists($k, $config)) {
                return count($keys) > 0 ? $this->config(implode('.', $keys), $config[$k]) : $config[$k];
            } else {
                return null;
            }
        }
    }
public function config($key) {
        $keys   = explode('.', $key);
        $config = func_num_args() === 1 ? $this['config'] : func_get_arg(1);

        while (($k = array_shift($keys)) !== null) {
            if (array_key_exists($k, $config)) {
                return count($keys) > 0 ? $this->config(implode('.', $keys), $config[$k]) : $config[$k];
            } else {
                return null;
            }
        }
    }
public function config ( $ key ) { $ keys = explode ( '.' , $ key ) ; $ config = func_num_args ( ) === 1 ? $ this [ 'config' ] : func_get_arg ( 1 ) ; while ( ( $ k = array_shift ( $ keys ) ) !== null ) { if ( array_key_exists ( $ k , $ config ) ) { return count ( $ keys ) > 0 ? $ this -> config ( implode ( '.' , $ keys ) , $ config [ $ k ] ) : $ config [ $ k ] ; } else { return null ; } } }
Get a config value
@param string $key Config key (you can use level1.level2.level3.level4)
@return mixed
Get a config value