Вызовите помощник другого модуля в моем модуле в magento - PullRequest
3 голосов
/ 04 января 2012

Как я могу вызвать помощника другого модуля в моем модуле?

Когда я пытаюсь

Mage :: помощник ( 'вспомогательный класс') -> getValueClass ( '', $ ID)

Это дает мне ошибку:

Неустранимая ошибка: класс 'Mage_Helperclass_Helper_Data' не найден в C: \ wamp \ www \ example \ app \ Mage.php в строке 516

Имя вспомогательного класса - Test_Helperclass_Helper_Data.

1 Ответ

6 голосов
/ 04 января 2012

Это правильный способ вызвать помощника, но ваша ошибка говорит о том, что вы неправильно настроили свой модуль. Я предполагаю, что ваш модуль существует в app/code/local/Test/Helperclass, и что вы включили его в файл app/etc/modules/Test_Helperclass.xml.

Когда вы звоните на фабрики Magento, такие как Mage::getModel(), Mage::getSingleton() или Mage::helper(), вы не предоставляете полное имя класса, а ссылку на класс, который хотите создать.

Это имеет формат modulename/classname.

В нашем случае имя модуля - helperclass (не обязательно указывать какое-либо отношение к фактическому имени модуля, оно также может быть foobar), и наш имя класса data. Итак, мы, по сути, называем Mage::helper('helperclass/data'), но Magento позволяет нам сократить это до Mage::helper('helperclass').

Нам нужно сообщить Магенто правило расширения helperclass/data -> Test_Helperclass_Helper_Data. Мы делаем это в файле конфигурации модуля на app/code/local/Test/Helperclass/etc/config.xml:

<?xml version="1.0"?>
<config>
    ...
        <global>
            <helpers>
                <!-- Here is where we define the mapping rule -->
                <helperclass>
                    <class>Test_Helperclass_Helper</class>
                </helperclass>
            </helpers>
        </global>
    ...
</config>
...