我做了两个全新安装的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中工作。
感谢您的帮助!
答案 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从目录中自动加载类