magentoにヘルパーデータが見つかりません


8

新しい拡張機能を作成し、Magento Adminで構成設定ファイルを作成しようとしました。キャッシュをクリアした後にブラウザで実行すると、次のようなエラーが発生しました

Fatal error: Class 'Mage_GlobalSms_Helper_Data' not found in D:\wamp\www\project\app\Mage.php on line 547

system.logエラーログファイルで、以下のエラーが見つかりました。

2015-05-27T13:40:43+00:00 ERR (3): Warning: include(Mage\GlobalSms\Helper\Data.php): failed to open stream: No such file or directory  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93
2015-05-27T13:40:43+00:00 ERR (3): Warning: include(): Failed opening 'Mage\GlobalSms\Helper\Data.php' for inclusion (include_path='D:\wamp\www\project\app\code\local;D:\wamp\www\project\app\code\community;D:\wamp\www\project\app\code\core;D:\wamp\www\project\lib;.;C:\php\pear')  in D:\wamp\www\project\lib\Varien\Autoload.php on line 93

私のapp \ etc \ modules \ファイルは次のとおりです:

<?xml version="1.0"?>
<config>
    <modules>
        <Php_GlobalSms>
            <active>true</active>
            <codePool>local</codePool>
            <version>0.0.1</version>
        </Php_GlobalSms>
    </modules>
</config>

以下の私のconfig.xml:

<config>
<modules>
    <Ucs_GlobalSms>
        <version>0.0.1</version>
    </Ucs_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Ucs_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <helpers>
        <globalsms>
            <class>Ucs_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <models>
        <custommodule>
            <class>Ucs_GlobalSms_Model</class>
        </custommodule>
    </models>
    <events>
        <customer_register_success>
            <observers>
                <Ucs_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Ucs_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Ucs_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>

以下の私のHelper / Data.php:

<?php
class Php_GlobalSms_Helper_Data extends Mage_Core_Helper_Abstract {

}

Data.phpが欠落しているというSOに関する多くの投稿を見つけることができますが、すべてありますが、それでもエラーが発生します


3
片付けました<webroot>/var/cacheか?
pspahn、2015年

回答:


10

ヘルパー宣言は次のようになります。

<global>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
</global>

次のようなコードでヘルパーを呼び出す必要があります。

Mage::helper('globalsms');

私はそれに応じて変更しましたが、それでも機能しません
Butterfly

私のsystem.logエラーを見ましたか?
バタフライ

1
はい。モジュールがMagentoによってピックアップされているかどうかを確認します。もしそうなら、私が説明したように動作するはずです。多分あなたは質問にあなたのフルconfig.xmlとあなたがヘルパーを使用している方法を追加する必要があります
マリウス

完全なconfig.xmlを更新しました。ヘルパーファイルをどこにも呼び出していません。エラーが発生していると宣言しないと、xmlにヘルパータグが追加されます
Butterfly

表示されているエラーは、グループクラス名が取得されていないことを示しています。これは、config.xmlがロードされていないか、ヘルパーの構成が間違った場所にあることを示しています。Mariusの回答に記載されているように、/ config / global / helpersにあります。(また、バージョンはおそらくモジュールXMLファイルに含まれていてはならないことにも注意してください)。
Kevin Schroeder

5

のモジュール名がmodule.xmlと異なりconfig.xmlます。

私はあなたが何を使いたいのか自分自身がわかりません、Php_GlobalSmsまたはUcs_GlobalSms


4

コンパイルを有効にする場合([システム]> [ツール]> [コンパイル])、無効にするか再コンパイルする必要があります。開発を行うときは、コンパイルを無効にするのが最善です。


2

config.xmlでヘルパーを定義する必要があります

<config>
<modules>
    <Php_GlobalSms>
        <version>0.0.1</version>
    </Php_GlobalSms>
</modules>
<admin>
     <routers>
        <adminhtml>
            <args>
                <modules>
                    <ucs_globalsms before="Mage_Adminhtml">Php_GlobalSms_Adminhtml</ucs_globalsms>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>
<global>
    <models>
        <custommodule>
            <class>Php_GlobalSms_Model</class>
        </custommodule>
    </models>
    <helpers>
        <globalsms>
            <class>Php_GlobalSms_Helper</class>
        </globalsms>
    </helpers>
    <events>
        <customer_register_success>
            <observers>
                <Php_GlobalSms_customer_register_success>
                    <type>singleton</type>
                    <class>Php_GlobalSms_Model_Observer</class>
                    <method>customerRegisterSuccess</method>
                </Php_GlobalSms_customer_register_success>
            </observers>
        </customer_register_success>
    </events>
</global>

1

管理領域の構成設定を作成したとのことですが、system.xmlファイルで、私はあなたがこのようなものを持っていると仮定します(あなたが持っているべきです)

<php_globalsms_options translate="label" module="php_globalsms">[...]

ここでMagentoがヘルパーをロードしようとします。ファイルでヘルパーを呼び出すかどうかに関係なく、Magentoは翻訳を処理します。他の答えは正しい方法を示しています。config.xmlファイルを更新し、GlobalSms-helperがモジュール内にあることをMagentoに伝えます。


1

同じ問題があります。config.xmlとレイアウトxmlを確認しました。

  <layout>
        <updates>
            <module_name>
                <file>module_name.xml</file>
            </module_name>
        </updates>
    </layout>

module_name.xmlに誤りがあります。不要なコードを削除しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.