【问题标题】:Fatal error: Class 'Xylyx_MyCheckout_Helper_Data' not found in /home/innersan/public_html/classicfinefoods/app/Mage.php on line 546致命错误:在第 546 行的 /home/innersan/public_html/classicfinefoods/app/Mage.php 中找不到类“Xylyx_MyCheckout_Helper_Data”
【发布时间】:2015-09-14 16:45:17
【问题描述】:

在 Siteground 上上传我的 Magento 插件时出现上述错误。我曾尝试在我的 本地 系统以及我们的 test 系统上部署此插件。
在这两个系统上部署时都没有出现此类错误,但是在Siteground 它抛出了这个错误。

我在 Magento 社区版本 1.9.1.1 中开发了我的 Magento 插件

我必须以某种方式将它部署在使用 Magento 版本 1.7.0.2

Siteground

我还通过在本地系统上使用版本 1.7.0.2 然后部署我的插件来检查代码兼容性。那里也一切正常。

这是我需要的文件

config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Xylyx_MyCheckout>
            <version>1.1.0</version>
        </Xylyx_MyCheckout>
    </modules>
    <global>
        <helpers>
            <mycheckout>
                <class>Xylyx_MyCheckout_Helper</class>
            </mycheckout>
        </helpers>
        <models>
            <mycheckout>
                <class>Xylyx_MyCheckout_Model</class>
                <resourceModel>xylyx_mysql4</resourceModel>
            </mycheckout>
        </models>
        <blocks>
            <mycheckout>
                <class>Xylyx_MyCheckout_Block</class>
            </mycheckout>
        </blocks>
    </global>
</config>

我还根据 Magento 论坛中建议的文件夹位置创建了名为 Data.php 的正确 Helper 文件。

Data.php

<?php
/**
 * Xylyx MyCheckout Data Helper
 *
 * 
 */
class Xylyx_MyCheckout_Helper_Data extends Mage_Core_Helper_Abstract {  
}

当我尝试刷新缓存时,我得到了这个错误,找不到 Data.php 文件

我已经检查了我的 config.xmlsystem.xml 是否存在任何类型的语法错误(无论是空格还是任何其他不需要的标签,并检查了标签也)

引擎盖下发生的实际错误可能是什么???或者我这边可能有什么问题?

对此的任何建议都会非常有帮助!!!!

【问题讨论】:

    标签: php magento


    【解决方案1】:

    您是否在 system.xml 中使用过任何翻译。如果是这样,您给出的模块名称是什么?

    例如:translate="label" module="mycheckout"

    您是否将模块名称指定为 mycheckout?

    说明:

    system.xml 中的 translate='label' 使用辅助抽象类,

    abstract class Mage_Core_Helper_Abstract
    {
       /**
        *   Translate array
        *
        *  @param    array $arr
        *  @return   array
        */
       public function translateArray($arr = array())
       {
           foreach ($arr as $k => $v) {
               if (is_array($v)) {
                   $v = self::translateArray($v);
               } elseif ($k === 'label') {
                   $v = self::__($v);
               }
               $arr[$k] = $v;
           }
           return $arr;
       }
    }
    

    【讨论】:

    • 是的..你是对的。我在我的 system.xml 中使用了翻译,正如您所提到的,我的模块的名称是“mycheckout”。但是当 Helper 类中的那个方法被调用时,它会产生什么影响呢?我的意思是你能解释一下流程,因为我是一个 Java 人,对 PHP 和 Magento 的基本知识很少。
    • 我的意思是下一步应该如何解决这个错误?
    • 从您提供的信息中,我唯一能看到的是您没有使用您的辅助类来执行任何功能,因此在您的模块中唯一会调用辅助类的地方将有用于翻译。当你说你有一个system.xml时,我猜到了。您能否提供更多信息 system.xml 或您使用过电子邮件模板等翻译的任何其他地方?
    • 嗨,如果您在本地系统中没有遇到此错误,请在 magento 文件夹结构命名约定中查找任何内容,您的本地开发系统可能不区分大小写,或者可能有其他模块在 siteground 中命名为 mycheckout
    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 2014-08-25
    • 2016-06-01
    • 2015-01-14
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多