protected function _processExtends(SimpleXMLElement $element, $section, array $config = array())
    {
        if (!isset($element->$section)) {

            throw new Zend_Config_Exception("Section '$section' cannot be found");
        }

        $thisSection  = $element->$section;
        $nsAttributes = $thisSection->attributes(self::XML_NAMESPACE);

        if (isset($thisSection['extends']) || isset($nsAttributes['extends'])) {
            $extendedSection = (string) (isset($nsAttributes['extends']) ? $nsAttributes['extends'] : $thisSection['extends']);
            $this->_assertValidExtend($section, $extendedSection);

            if (!$this->_skipExtends) {
                $config = $this->_processExtends($element, $extendedSection, $config);
            }
        }

        $config = $this->_arrayMergeRecursive($config, $this->_toArray($thisSection));

        return $config;
    }
protected function _processExtends(SimpleXMLElement $element, $section, array $config = array())
    {
        if (!isset($element->$section)) {

            throw new Zend_Config_Exception("Section '$section' cannot be found");
        }

        $thisSection  = $element->$section;
        $nsAttributes = $thisSection->attributes(self::XML_NAMESPACE);

        if (isset($thisSection['extends']) || isset($nsAttributes['extends'])) {
            $extendedSection = (string) (isset($nsAttributes['extends']) ? $nsAttributes['extends'] : $thisSection['extends']);
            $this->_assertValidExtend($section, $extendedSection);

            if (!$this->_skipExtends) {
                $config = $this->_processExtends($element, $extendedSection, $config);
            }
        }

        $config = $this->_arrayMergeRecursive($config, $this->_toArray($thisSection));

        return $config;
    }
protected function _processExtends ( SimpleXMLElement $ element , $ section , array $ config = array ( ) ) { if ( ! isset ( $ element -> $ section ) ) { throw new Zend_Config_Exception ( "Section '$section' cannot be found" ) ; } $ thisSection = $ element -> $ section ; $ nsAttributes = $ thisSection -> attributes ( self :: XML_NAMESPACE ) ; if ( isset ( $ thisSection [ 'extends' ] ) || isset ( $ nsAttributes [ 'extends' ] ) ) { $ extendedSection = ( string ) ( isset ( $ nsAttributes [ 'extends' ] ) ? $ nsAttributes [ 'extends' ] : $ thisSection [ 'extends' ] ) ; $ this -> _assertValidExtend ( $ section , $ extendedSection ) ; if ( ! $ this -> _skipExtends ) { $ config = $ this -> _processExtends ( $ element , $ extendedSection , $ config ) ; } } $ config = $ this -> _arrayMergeRecursive ( $ config , $ this -> _toArray ( $ thisSection ) ) ; return $ config ; }
Helper function to process each element in the section and handle
the "extends" inheritance attribute.

@param  SimpleXMLElement $element XML Element to process
@param  string           $section Section to process
@param  array            $config  Configuration which was parsed yet
@throws Zend_Config_Exception When $section cannot be found
@return array
Helper function to process each element in the section and handle the extends inheritance attribute .