1 に答える
このエラー メッセージは、Magento がモジュールの宣言を読み込もうとしたが、Mage_Api
モジュールの宣言が見つからなかったことを示していMage_Core
ます。はこのモジュールに依存するように構成されているためMage_Api
、Magento は無効になります。
これが発生する可能性のある理由は無数にあり、何が起こっているのかを推測するのに十分な情報があなたの質問にはありません. この問題を自分でさらにデバッグする必要があります。
まず、この例外は次のメソッドから発生しています
#File: app/code/core/Mage/Core/Model/Config.php
protected function _sortModuleDepends($modules)
{
...
}
$modules
配列には、システムにロードされた情報が含まれapp/etc/modules
ています。あなたの例外は最初のループで発生します
foreach ($modules as $moduleName => $moduleProps) {
$depends = $moduleProps['depends'];
foreach ($moduleProps['depends'] as $depend => $true) {
if ($moduleProps['active'] && ((!isset($modules[$depend])) || empty($modules[$depend]['active']))) {
Mage::throwException(
Mage::helper('core')->__('Module "%1$s" requires module "%2$s".', $moduleName, $depend)
);
}
$depends = array_merge($depends, $modules[$depend]['depends']);
}
$modules[$moduleName]['depends'] = $depends;
}
の内容を確認してください$modules
。キーがない場合Mage_Core
(私が推測するように)、Magento がapp/etc/modules
その宣言内のファイルを読み込めなかったことを意味しますMage_Core
。デフォルトでは、これはMage_All.xml
. このファイルの権限を確認し、有効な XML であることを確認してください。大まかなチェックに合格した場合、このファイルは次の場所にロードされます_loadDeclaredModules
protected function _loadDeclaredModules($mergeConfig = null)
{
//...
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),
);
}
//...
}
ノードが見つからない理由Mage_Core
を特定すると、問題の解決策が見つかります。