source/Core/Module/ModuleInstaller.php
protected function validateModuleMetadataControllersOnActivation($moduleControllers)
    {
        $moduleControllerMapProvider = $this->getModuleControllerMapProvider();
        $shopControllerMapProvider = $this->getShopControllerMapProvider();

        $moduleControllerMap = $moduleControllerMapProvider->getControllerMap();
        $shopControllerMap = $shopControllerMapProvider->getControllerMap();

        $existingMaps = array_merge($moduleControllerMap, $shopControllerMap);

        /**
         * Ensure, that controller keys are unique.
         * As keys are always stored in lower case, we must test against lower case keys here as well
         */
        $duplicatedKeys = array_intersect_key(array_change_key_case($moduleControllers, CASE_LOWER), $existingMaps);
        if (!empty($duplicatedKeys)) {
            throw new \OxidEsales\Eshop\Core\Exception\ModuleValidationException(implode(',', $duplicatedKeys));
        }

        /**
         * Ensure, that controller values are unique.
         */
        $duplicatedValues = array_intersect($moduleControllers, $existingMaps);
        if (!empty($duplicatedValues)) {
            throw new \OxidEsales\Eshop\Core\Exception\ModuleValidationException(implode(',', $duplicatedValues));
        }
    }
protected function validateModuleMetadataControllersOnActivation($moduleControllers)
    {
        $moduleControllerMapProvider = $this->getModuleControllerMapProvider();
        $shopControllerMapProvider = $this->getShopControllerMapProvider();

        $moduleControllerMap = $moduleControllerMapProvider->getControllerMap();
        $shopControllerMap = $shopControllerMapProvider->getControllerMap();

        $existingMaps = array_merge($moduleControllerMap, $shopControllerMap);

        /**
         * Ensure, that controller keys are unique.
         * As keys are always stored in lower case, we must test against lower case keys here as well
         */
        $duplicatedKeys = array_intersect_key(array_change_key_case($moduleControllers, CASE_LOWER), $existingMaps);
        if (!empty($duplicatedKeys)) {
            throw new \OxidEsales\Eshop\Core\Exception\ModuleValidationException(implode(',', $duplicatedKeys));
        }

        /**
         * Ensure, that controller values are unique.
         */
        $duplicatedValues = array_intersect($moduleControllers, $existingMaps);
        if (!empty($duplicatedValues)) {
            throw new \OxidEsales\Eshop\Core\Exception\ModuleValidationException(implode(',', $duplicatedValues));
        }
    }
protected function validateModuleMetadataControllersOnActivation ( $ moduleControllers ) { $ moduleControllerMapProvider = $ this -> getModuleControllerMapProvider ( ) ; $ shopControllerMapProvider = $ this -> getShopControllerMapProvider ( ) ; $ moduleControllerMap = $ moduleControllerMapProvider -> getControllerMap ( ) ; $ shopControllerMap = $ shopControllerMapProvider -> getControllerMap ( ) ; $ existingMaps = array_merge ( $ moduleControllerMap , $ shopControllerMap ) ; /**
         * Ensure, that controller keys are unique.
         * As keys are always stored in lower case, we must test against lower case keys here as well
         */ $ duplicatedKeys = array_intersect_key ( array_change_key_case ( $ moduleControllers , CASE_LOWER ) , $ existingMaps ) ; if ( ! empty ( $ duplicatedKeys ) ) { throw new \ OxidEsales \ Eshop \ Core \ Exception \ ModuleValidationException ( implode ( ',' , $ duplicatedKeys ) ) ; } /**
         * Ensure, that controller values are unique.
         */ $ duplicatedValues = array_intersect ( $ moduleControllers , $ existingMaps ) ; if ( ! empty ( $ duplicatedValues ) ) { throw new \ OxidEsales \ Eshop \ Core \ Exception \ ModuleValidationException ( implode ( ',' , $ duplicatedValues ) ) ; } }
Ensure integrity of the controllerMap before storing it.
Both keys and values must be unique with in the same shop or sub-shop.

@param array $moduleControllers

@throws ModuleValidationException
Ensure integrity of the controllerMap before storing it . Both keys and values must be unique with in the same shop or sub - shop .