具有自定义助手功能的Magento无法打开

时间:2014-06-07 00:07:57

标签: magento nginx mage

我做了两个全新安装的magento 1.9.0.1,一个在我的电脑上使用wampserver(apache 2.44,php5.4.12),第二个在我的共享主机中使用nginx和php5.4.4,两个都工作[b]很好[/ b]日志中没有错误。

我使用Helper类创建简单函数来比较taxvat数字p.e。:

应用程序的/ etc /模块/ MyF_checkF.xml

<config>
    <modules>
        <MyF_checkF>
            <active>true</active>
            <codePool>local</codePool>
        </MyF_checkF>
    </modules>
</config>

应用程序/代码/本地/ MYF / checkF的/ etc / config.xml中

<config>
     <global>
         <helpers>
            <checkF>
                <class>MyF_checkF_Helper</class>
            </checkF>
        </helpers> 
     </global>
 </config>

应用程序/代码/本地/ MYF / checkF /助手/ Data.php

<?php

class MyF_checkF_Helper_Data extends Mage_Core_Helper_Abstract
{
    public function validVAT($vat)
    {
        if($vat == 123) 
                    return TRUE;
            else 
                    return FALSE;
    }
}

将/app/code/core/Mage/Customer/Model/Customer.php复制到/app/code/local/Mage/Customer/Model/Customer.php并在taxvat检查后添加

if ($attribute->getIsRequired() && !Mage::helper('checkF')->validVAT($this->getTaxvat())){
            $errors[] = Mage::helper('customer')->__('TAX/VAT wrong.');
            }

在我的PC中localhost工作没有错误,日志清理,但在我得到的共享主机:

SYSTEM.LOG

Warning: include(Mage/CheckF/Helper/Data.php): failed to open stream: No such file or directory  in /var/www/clients/client0/web10/web/lib/Varien/Autoload.php on line 93
Warning: include(): Failed opening 'Mage/CheckF/Helper/Data.php' for inclusion (include_path='/var/www/clients/client0/web10/web/app/code/local:/var/www/clients/client0/web10/web/app/code/community:/var/www/clients/client0/web10/web/app/code/core:/var/www/clients/client0/web10/web/lib:.:/usr/share/php:/usr/share/pear')  in /var/www/clients/client0/web10/web/lib/Varien/Autoload.php on line 93

error.log中

FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class 'Mage_CheckF_Helper_Data' not found in /var/www/clients/client0/web10/web/app/Mage.php on line 547" while reading response header from upstream, request: "POST /index.php/customer/account/createpost/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9019"

禁用magento缓存的两个安装,idk为什么在magento的共享托管中寻找Mage / CheckF ..而不是local / checkf,但是在localhost中工作。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

需要将助手checkF更改为checkf ...  并使用Mage::helper('checkF')代替Mage::helper('checkf')

<?xml version="1.0"?>
<config>
    <modules>
        <MyF_checkF>
            <version>0.1.0</version>
        </MyF_checkF>
    </modules>
     <global>
         <helpers>
            <checkf>
                <class>MyF_checkF_Helper</class>
            </checkf>
        </helpers> 
     </global>
 </config>

答案 1 :(得分:0)

警告:include(Mage / CheckF / Helper / Data.php):无法打开流,它试图找到Mage包而不是你的自定义模块MyF,这可能会给你一个线索,

并将您的名字MyF_checkF_Helper_Data更正为MyF_CheckF_Helper_Data,因为Magento从目录中自动加载类