protected function _processKey($config, $key, $value)
    {
        if (strpos($key, $this->_nestSeparator) !== false) {
            $pieces = explode($this->_nestSeparator, $key, 2);
            if (strlen($pieces[0]) && strlen($pieces[1])) {
                if (!isset($config[$pieces[0]])) {
                    if ($pieces[0] === '0' && !empty($config)) {
                        // convert the current values in $config into an array
                        $config = array($pieces[0] => $config);
                    } else {
                        $config[$pieces[0]] = array();
                    }
                } elseif (!is_array($config[$pieces[0]])) {
                    /**
                     * @see Zend_Config_Exception
                     */

                    throw new Zend_Config_Exception("Cannot create sub-key for '{$pieces[0]}' as key already exists");
                }
                $config[$pieces[0]] = $this->_processKey($config[$pieces[0]], $pieces[1], $value);
            } else {
                /**
                 * @see Zend_Config_Exception
                 */

                throw new Zend_Config_Exception("Invalid key '$key'");
            }
        } else {
            $config[$key] = $value;
        }
        return $config;
    }
protected function _processKey($config, $key, $value)
    {
        if (strpos($key, $this->_nestSeparator) !== false) {
            $pieces = explode($this->_nestSeparator, $key, 2);
            if (strlen($pieces[0]) && strlen($pieces[1])) {
                if (!isset($config[$pieces[0]])) {
                    if ($pieces[0] === '0' && !empty($config)) {
                        // convert the current values in $config into an array
                        $config = array($pieces[0] => $config);
                    } else {
                        $config[$pieces[0]] = array();
                    }
                } elseif (!is_array($config[$pieces[0]])) {
                    /**
                     * @see Zend_Config_Exception
                     */

                    throw new Zend_Config_Exception("Cannot create sub-key for '{$pieces[0]}' as key already exists");
                }
                $config[$pieces[0]] = $this->_processKey($config[$pieces[0]], $pieces[1], $value);
            } else {
                /**
                 * @see Zend_Config_Exception
                 */

                throw new Zend_Config_Exception("Invalid key '$key'");
            }
        } else {
            $config[$key] = $value;
        }
        return $config;
    }
protected function _processKey ( $ config , $ key , $ value ) { if ( strpos ( $ key , $ this -> _nestSeparator ) !== false ) { $ pieces = explode ( $ this -> _nestSeparator , $ key , 2 ) ; if ( strlen ( $ pieces [ 0 ] ) && strlen ( $ pieces [ 1 ] ) ) { if ( ! isset ( $ config [ $ pieces [ 0 ] ] ) ) { if ( $ pieces [ 0 ] === '0' && ! empty ( $ config ) ) { // convert the current values in $config into an array $ config = array ( $ pieces [ 0 ] => $ config ) ; } else { $ config [ $ pieces [ 0 ] ] = array ( ) ; } } elseif ( ! is_array ( $ config [ $ pieces [ 0 ] ] ) ) { /**
                     * @see Zend_Config_Exception
                     */ throw new Zend_Config_Exception ( "Cannot create sub-key for '{$pieces[0]}' as key already exists" ) ; } $ config [ $ pieces [ 0 ] ] = $ this -> _processKey ( $ config [ $ pieces [ 0 ] ] , $ pieces [ 1 ] , $ value ) ; } else { /**
                 * @see Zend_Config_Exception
                 */ throw new Zend_Config_Exception ( "Invalid key '$key'" ) ; } } else { $ config [ $ key ] = $ value ; } return $ config ; }
Assign the key's value to the property list. Handles the
nest separator for sub-properties.

@param  array  $config
@param  string $key
@param  string $value
@throws Zend_Config_Exception
@return array
Assign the key s value to the property list . Handles the nest separator for sub - properties .