Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 为什么没有加载我的Magento模块?_Debugging_Magento_Configuration_Module_Config - Fatal编程技术网

Debugging 为什么没有加载我的Magento模块?

Debugging 为什么没有加载我的Magento模块?,debugging,magento,configuration,module,config,Debugging,Magento,Configuration,Module,Config,我刚刚编写了一个Magento模块,但是没有加载,我想调试它。这里有几个类和方法,它们负责加载的各个阶段 图像\u核心\u模型\u配置 为每个模块调用时,返回一个Mage_Core_Model_Config,表示启用的主配置目录、版本等中模块的XML块: /** * Get module config node * * @param string $moduleName * @return Varien_Simplexml_Object */ function getModuleCon

我刚刚编写了一个Magento模块,但是没有加载,我想调试它。

这里有几个类和方法,它们负责加载的各个阶段

图像\u核心\u模型\u配置 为每个模块调用时,返回一个Mage_Core_Model_Config,表示启用的主配置目录、版本等中模块的XML块:

/**
 * Get module config node
 *
 * @param string $moduleName
 * @return Varien_Simplexml_Object
 */
function getModuleConfig($moduleName='')
{
    $modules = $this->getNode('modules');
    if (''===$moduleName) {
        return $modules;
    } else {
        return $modules->$moduleName;
    }
}
为每个模块调用,但只构建一个结构,而不包括单个模块配置:

/**
 * Load declared modules configuration
 *
 * @param   null $mergeConfig depricated
 * @return  Mage_Core_Model_Config
 */
protected function _loadDeclaredModules($mergeConfig = null)
{
    $moduleFiles = $this->_getDeclaredModuleFiles();
    if (!$moduleFiles) {
        return ;
    }

    Varien_Profiler::start('config/load-modules-declaration');

    $unsortedConfig = new Mage_Core_Model_Config_Base();
    $unsortedConfig->loadString('<config/>');
    $fileConfig = new Mage_Core_Model_Config_Base();

    // load modules declarations
    foreach ($moduleFiles as $file) {
        $fileConfig->loadFile($file);
        $unsortedConfig->extend($fileConfig);
    }

    $moduleDepends = array();
    foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) {
        if (!$this->_isAllowedModule($moduleName)) {
            continue;
        }

        $depends = array();
        if ($moduleNode->depends) {
            foreach ($moduleNode->depends->children() as $depend) {
                $depends[$depend->getName()] = true;
            }
        }
        $moduleDepends[$moduleName] = array(
            'module'    => $moduleName,
            'depends'   => $depends,
            'active'    => ('true' === (string)$moduleNode->active ? true : false),
        );
    }

    // check and sort module dependence
    $moduleDepends = $this->_sortModuleDepends($moduleDepends);

    // create sorted config
    $sortedConfig = new Mage_Core_Model_Config_Base();
    $sortedConfig->loadString('<config><modules/></config>');

    foreach ($unsortedConfig->getNode()->children() as $nodeName => $node) {
        if ($nodeName != 'modules') {
            $sortedConfig->getNode()->appendChild($node);
        }
    }

    foreach ($moduleDepends as $moduleProp) {
        $node = $unsortedConfig->getNode('modules/'.$moduleProp['module']);
        $sortedConfig->getNode('modules')->appendChild($node);
    }

    $this->extend($sortedConfig);

    Varien_Profiler::stop('config/load-modules-declaration');
    return $this;
}
/**
 * Iterate all active modules "etc" folders and combine data from
 * specidied xml file name to one object
 *
 * @param   string $fileName
 * @param   null|Mage_Core_Model_Config_Base $mergeToObject
 * @return  Mage_Core_Model_Config_Base
 */
public function loadModulesConfiguration($fileName, $mergeToObject = null, $mergeModel=null)
{
    $disableLocalModules = !$this->_canUseLocalModules();

    if ($mergeToObject === null) {
        $mergeToObject = clone $this->_prototype;
        $mergeToObject->loadString('<config/>');
    }
    if ($mergeModel === null) {
        $mergeModel = clone $this->_prototype;
    }
    $modules = $this->getNode('modules')->children();
    foreach ($modules as $modName=>$module) {
        if ($module->is('active')) {
            if ($disableLocalModules && ('local' === (string)$module->codePool)) {
                continue;
            }
            $configFile = $this->getModuleDir('etc', $modName).DS.$fileName;
            if ($mergeModel->loadFile($configFile)) {
                $mergeToObject->extend($mergeModel, true);
            }
        }
    }
    return $mergeToObject;
}
/**
 * Imports XML file
 *
 * @param string $filePath
 * @return boolean
 */
public function loadFile($filePath)
{
    if (!is_readable($filePath)) {
        //throw new Exception('Can not read xml file '.$filePath);
        return false;
    }

    $fileData = file_get_contents($filePath);
    $fileData = $this->processFileData($fileData);
    return $this->loadString($fileData, $this->_elementClass);
}
加载单个模块配置:

/**
 * Load declared modules configuration
 *
 * @param   null $mergeConfig depricated
 * @return  Mage_Core_Model_Config
 */
protected function _loadDeclaredModules($mergeConfig = null)
{
    $moduleFiles = $this->_getDeclaredModuleFiles();
    if (!$moduleFiles) {
        return ;
    }

    Varien_Profiler::start('config/load-modules-declaration');

    $unsortedConfig = new Mage_Core_Model_Config_Base();
    $unsortedConfig->loadString('<config/>');
    $fileConfig = new Mage_Core_Model_Config_Base();

    // load modules declarations
    foreach ($moduleFiles as $file) {
        $fileConfig->loadFile($file);
        $unsortedConfig->extend($fileConfig);
    }

    $moduleDepends = array();
    foreach ($unsortedConfig->getNode('modules')->children() as $moduleName => $moduleNode) {
        if (!$this->_isAllowedModule($moduleName)) {
            continue;
        }

        $depends = array();
        if ($moduleNode->depends) {
            foreach ($moduleNode->depends->children() as $depend) {
                $depends[$depend->getName()] = true;
            }
        }
        $moduleDepends[$moduleName] = array(
            'module'    => $moduleName,
            'depends'   => $depends,
            'active'    => ('true' === (string)$moduleNode->active ? true : false),
        );
    }

    // check and sort module dependence
    $moduleDepends = $this->_sortModuleDepends($moduleDepends);

    // create sorted config
    $sortedConfig = new Mage_Core_Model_Config_Base();
    $sortedConfig->loadString('<config><modules/></config>');

    foreach ($unsortedConfig->getNode()->children() as $nodeName => $node) {
        if ($nodeName != 'modules') {
            $sortedConfig->getNode()->appendChild($node);
        }
    }

    foreach ($moduleDepends as $moduleProp) {
        $node = $unsortedConfig->getNode('modules/'.$moduleProp['module']);
        $sortedConfig->getNode('modules')->appendChild($node);
    }

    $this->extend($sortedConfig);

    Varien_Profiler::stop('config/load-modules-declaration');
    return $this;
}
/**
 * Iterate all active modules "etc" folders and combine data from
 * specidied xml file name to one object
 *
 * @param   string $fileName
 * @param   null|Mage_Core_Model_Config_Base $mergeToObject
 * @return  Mage_Core_Model_Config_Base
 */
public function loadModulesConfiguration($fileName, $mergeToObject = null, $mergeModel=null)
{
    $disableLocalModules = !$this->_canUseLocalModules();

    if ($mergeToObject === null) {
        $mergeToObject = clone $this->_prototype;
        $mergeToObject->loadString('<config/>');
    }
    if ($mergeModel === null) {
        $mergeModel = clone $this->_prototype;
    }
    $modules = $this->getNode('modules')->children();
    foreach ($modules as $modName=>$module) {
        if ($module->is('active')) {
            if ($disableLocalModules && ('local' === (string)$module->codePool)) {
                continue;
            }
            $configFile = $this->getModuleDir('etc', $modName).DS.$fileName;
            if ($mergeModel->loadFile($configFile)) {
                $mergeToObject->extend($mergeModel, true);
            }
        }
    }
    return $mergeToObject;
}
/**
 * Imports XML file
 *
 * @param string $filePath
 * @return boolean
 */
public function loadFile($filePath)
{
    if (!is_readable($filePath)) {
        //throw new Exception('Can not read xml file '.$filePath);
        return false;
    }

    $fileData = file_get_contents($filePath);
    $fileData = $this->processFileData($fileData);
    return $this->loadString($fileData, $this->_elementClass);
}

Dustin Oprea

请添加模块代码。没有任何细节是无法帮助你的。我本想完全回答我的问题,但有一个强制性的等待期,朋友。你看到你的模块在“管理->配置->高级->高级”下吗?对我来说,这似乎是一个真正的问题。他们只是发布了一个关于合法Magento问题的教程。我相信这是正确的,这是所谓的一切的核心,这是正确的。如果你真的看看这个网站的目的,他们会鼓励你这么做。停止用你荒谬的评级来欺负他人。这是否意味着篡改了核心文件?嗯……这意味着您可能需要了解系统是如何工作的,以便了解模块未加载的原因。见原问题。