public function checkExtendedClasses()
    {
        $aMetadataExtend = $this->getInfo('extend');
        $aMetadataExtend = is_array($aMetadataExtend) ? $aMetadataExtend : [];

        $aResult = [];

        /**
         * only convert class names to lower if we don't use namespace
         */
        if (!$this->isMetadataVersionGreaterEqual('2.0')) {
            $aMetadataExtend = array_change_key_case($aMetadataExtend, CASE_LOWER);
            //convert legacy classnames because $aAllModules dos not contain legacy classes
            if (method_exists(Registry::class ,'getBackwardsCompatibilityClassMap')) {
                $map = Registry::getBackwardsCompatibilityClassMap();
                foreach ($aMetadataExtend as $legacyName => $file) {
                    if (isset($map[$legacyName])) {
                        $namespaceName = $map[$legacyName];
                        $aMetadataExtend[$namespaceName] = $file;
                        unset($aMetadataExtend[$legacyName]);
                    }
                }
            }
        }

        foreach ($aMetadataExtend as $sClassName => $sModuleName) {
            $key_state = $iState = self::OK;

            if (strpos($sClassName,'OxidEsales\\EshopCommunity\\') === 0 ||
                strpos($sClassName,'OxidEsales\\EshopEnterprise\\') === 0 ||
                strpos($sClassName,'OxidEsales\\EshopProfessional\\') === 0 ||
                !class_exists($sClassName)
            ) {
                if (strpos($sClassName,'oxerp') === 0) {
                    //AS ERP module does still use a own autoloader
                    //classes of oxerp will not be found with class_exists
                    $erp_dir = Registry::getConfig()->getModulesDir() .'erp/';
                    if (strpos($sClassName,'oxerptype_') === 0) {
                        $dir = $erp_dir.'objects/';
                    } else {
                        $dir = $erp_dir;
                    }

                    $sFullPath  = $dir.$sClassName.'.php';

                    if (!file_exists($sFullPath)) {
                        $key_state = self::SHOP_FILE_NOT_FOUND;
                        $this->state |= self::NEED_MANUAL_FIXED;
                    }
                } else {
                    $key_state = self::SHOP_FILE_NOT_FOUND;
                    $this->state |= self::NEED_MANUAL_FIXED;
                }
            }

            $aResult[ $sClassName ]['key_state'] = $key_state;

            if (!$this->checkPhpFileExists($sModuleName)) {
                $iState = self::MODULE_FILE_NOT_FOUND;
                $this->state |= self::NEED_MANUAL_FIXED;
            }

            $aResult[ $sClassName ][ 'data' ] = $sModuleName;
            $aResult[ $sClassName ][ 'state' ] = $iState;
        }

        return $aResult;
    }
public function checkExtendedClasses()
    {
        $aMetadataExtend = $this->getInfo('extend');
        $aMetadataExtend = is_array($aMetadataExtend) ? $aMetadataExtend : [];

        $aResult = [];

        /**
         * only convert class names to lower if we don't use namespace
         */
        if (!$this->isMetadataVersionGreaterEqual('2.0')) {
            $aMetadataExtend = array_change_key_case($aMetadataExtend, CASE_LOWER);
            //convert legacy classnames because $aAllModules dos not contain legacy classes
            if (method_exists(Registry::class ,'getBackwardsCompatibilityClassMap')) {
                $map = Registry::getBackwardsCompatibilityClassMap();
                foreach ($aMetadataExtend as $legacyName => $file) {
                    if (isset($map[$legacyName])) {
                        $namespaceName = $map[$legacyName];
                        $aMetadataExtend[$namespaceName] = $file;
                        unset($aMetadataExtend[$legacyName]);
                    }
                }
            }
        }

        foreach ($aMetadataExtend as $sClassName => $sModuleName) {
            $key_state = $iState = self::OK;

            if (strpos($sClassName,'OxidEsales\\EshopCommunity\\') === 0 ||
                strpos($sClassName,'OxidEsales\\EshopEnterprise\\') === 0 ||
                strpos($sClassName,'OxidEsales\\EshopProfessional\\') === 0 ||
                !class_exists($sClassName)
            ) {
                if (strpos($sClassName,'oxerp') === 0) {
                    //AS ERP module does still use a own autoloader
                    //classes of oxerp will not be found with class_exists
                    $erp_dir = Registry::getConfig()->getModulesDir() .'erp/';
                    if (strpos($sClassName,'oxerptype_') === 0) {
                        $dir = $erp_dir.'objects/';
                    } else {
                        $dir = $erp_dir;
                    }

                    $sFullPath  = $dir.$sClassName.'.php';

                    if (!file_exists($sFullPath)) {
                        $key_state = self::SHOP_FILE_NOT_FOUND;
                        $this->state |= self::NEED_MANUAL_FIXED;
                    }
                } else {
                    $key_state = self::SHOP_FILE_NOT_FOUND;
                    $this->state |= self::NEED_MANUAL_FIXED;
                }
            }

            $aResult[ $sClassName ]['key_state'] = $key_state;

            if (!$this->checkPhpFileExists($sModuleName)) {
                $iState = self::MODULE_FILE_NOT_FOUND;
                $this->state |= self::NEED_MANUAL_FIXED;
            }

            $aResult[ $sClassName ][ 'data' ] = $sModuleName;
            $aResult[ $sClassName ][ 'state' ] = $iState;
        }

        return $aResult;
    }
public function checkExtendedClasses ( ) { $ aMetadataExtend = $ this -> getInfo ( 'extend' ) ; $ aMetadataExtend = is_array ( $ aMetadataExtend ) ? $ aMetadataExtend : [ ] ; $ aResult = [ ] ; /**
         * only convert class names to lower if we don't use namespace
         */ if ( ! $ this -> isMetadataVersionGreaterEqual ( '2.0' ) ) { $ aMetadataExtend = array_change_key_case ( $ aMetadataExtend , CASE_LOWER ) ; //convert legacy classnames because $aAllModules dos not contain legacy classes if ( method_exists ( Registry :: class , 'getBackwardsCompatibilityClassMap' ) ) { $ map = Registry :: getBackwardsCompatibilityClassMap ( ) ; foreach ( $ aMetadataExtend as $ legacyName => $ file ) { if ( isset ( $ map [ $ legacyName ] ) ) { $ namespaceName = $ map [ $ legacyName ] ; $ aMetadataExtend [ $ namespaceName ] = $ file ; unset ( $ aMetadataExtend [ $ legacyName ] ) ; } } } } foreach ( $ aMetadataExtend as $ sClassName => $ sModuleName ) { $ key_state = $ iState = self :: OK ; if ( strpos ( $ sClassName , 'OxidEsales\\EshopCommunity\\' ) === 0 || strpos ( $ sClassName , 'OxidEsales\\EshopEnterprise\\' ) === 0 || strpos ( $ sClassName , 'OxidEsales\\EshopProfessional\\' ) === 0 || ! class_exists ( $ sClassName ) ) { if ( strpos ( $ sClassName , 'oxerp' ) === 0 ) { //AS ERP module does still use a own autoloader //classes of oxerp will not be found with class_exists $ erp_dir = Registry :: getConfig ( ) -> getModulesDir ( ) . 'erp/' ; if ( strpos ( $ sClassName , 'oxerptype_' ) === 0 ) { $ dir = $ erp_dir . 'objects/' ; } else { $ dir = $ erp_dir ; } $ sFullPath = $ dir . $ sClassName . '.php' ; if ( ! file_exists ( $ sFullPath ) ) { $ key_state = self :: SHOP_FILE_NOT_FOUND ; $ this -> state |= self :: NEED_MANUAL_FIXED ; } } else { $ key_state = self :: SHOP_FILE_NOT_FOUND ; $ this -> state |= self :: NEED_MANUAL_FIXED ; } } $ aResult [ $ sClassName ] [ 'key_state' ] = $ key_state ; if ( ! $ this -> checkPhpFileExists ( $ sModuleName ) ) { $ iState = self :: MODULE_FILE_NOT_FOUND ; $ this -> state |= self :: NEED_MANUAL_FIXED ; } $ aResult [ $ sClassName ] [ 'data' ] = $ sModuleName ; $ aResult [ $ sClassName ] [ 'state' ] = $ iState ; } return $ aResult ; }
Analyze extended class information in metadata and database.

@return array
Analyze extended class information in metadata and database .