Не удалось открыть Magento с пользовательской вспомогательной функцией
Я сделал две свежие установки magento 1.9.0.1, одна на моем компьютере с wampserver (apache 2.44, php5.4.12) и вторая на моем общем хостинге с nginx и php5.4.4, обе работали нормально [b] отлично [/b] без ошибки в логе.
Я создаю простую функцию с классом Helper для сравнения номера таксвата pe:
приложение / и т.д. / модули /MyF_checkF.xml
<config>
<modules>
<MyF_checkF>
<active>true</active>
<codePool>local</codePool>
</MyF_checkF>
</modules>
</config>
Приложение / код / местные / MYF/checkF/ и т.д. /config.xml
<config>
<global>
<helpers>
<checkF>
<class>MyF_checkF_Helper</class>
</checkF>
</helpers>
</global>
</config>
Приложение / код / местные / MYF/checkF/Helper/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.');
}
На моем ПК localhost работает без ошибок, лог чист, но на виртуальном хостинге я получил:
системный журнал
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
журнал ошибок
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 ответа
Предупреждение: include(Mage/CheckF/Helper/Data.php): не удалось открыть поток, он пытается найти его в пакете Mage вместо пользовательского модуля MyF, это может дать вам подсказку,
и исправьте ваше имя, MyF_checkF_Helper_Data в MyF_CheckF_Helper_Data, поскольку Magento загружает классы из каталога
Нужна смена помощника 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>