Magento: Schwerwiegender Fehler: Die Klasse 'Mage_Giftcards_Helper_Data' wurde in ... / app / Mage.php in Zeile 546 nicht gefunden

16

Ich habe eine Modulerweiterung installiert, die einen schwerwiegenden Fehler auslöst

"Schwerwiegender Fehler: Klasse 'Mage_Giftcards_Helper_Data' in .... / app / Mage.php in Zeile 546 nicht gefunden" in admin.

Ich habe diesen Link /programming//a/9191286/2919940 und diesen Link auch /magento//a/7133/3693 umbenannt

Aber ich habe

<global>
<helpers>
        <giftcards>
            <class>Webtex_Giftcards_Helper</class>
        </giftcards>
    </helpers>
</global>

In meiner config.xmlund ich haben diese Klasse

class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}

am /app/code/local/Webtex/Giftcards/Helper/Data.phpPfad deklariert .

Ich habe den Compiler deaktiviert und den Cache geleert, indem ich ein leeres var/cacheVerzeichnis erstellt habe.

Ich fand überall, config.xmldass Helfer-Klasse definieren und Data.php diese Helfer-Klasse deklarieren sollte.

Aber ich habe beide in meinem Fall, was kann der Grund für diesen Fehler sein? Ich habe dieses Modul auch auf meiner neuen Magento-Installation getestet.

Magento-Version ist 1.7.0.2

Bitte geben Sie Hilfe für diesen Fehler? Wenn es Konflikte von Klassennamen gibt, wie können wir das debuggen?

Vielen Dank

Mukund Thanki
quelle
Lassen Sie mich wissen, ob Sie zusätzliche Informationen aus meiner Antwort benötigen oder ob Sie ein Update haben.
Philwinkle

Antworten:

20

Dies ist häufig der Fall, wenn auf einen fehlenden Helfer verwiesen wird. In vielen Fällen ist der Klassenname selbst falsch formatiert oder Ihr Kurzname, der darauf verweist, ist falsch. Aus diesem Grund sucht Magento im Pfad danach Mage_Giftcards_Helper_Data(siehe Beispiel 1 unten). Für die folgenden Beispiele habe ich ein Modul namens eingerichtet MyCompany_MyModule.

Dies sind nur einige der vielen Möglichkeiten, wie Sie mit der Definition von Helfern schief gehen können:


Falscher Helferklassen-Alias:

Ich beziehe mich auf meinen Helfer als:

$helper = Mage::helper('mycompany');

Ich erhalte den Fehler:

Fatal error: Class 'Mage_Mycompany_Helper_Data' not found

Was schief gelaufen ist?

Mein Helferklassen-Alias ​​ist wie folgt definiert mymodule:

<helpers>
    <mymodule>
        <class>MyCompany_MyModule_Helper</class>
    </mymodule>
</helpers>

Ändern Sie meinen Shortcode, um Mage::helper('mymodule')das gewünschte Ergebnis zu erzielen .


Falscher Klassenname

Ich beziehe mich auf meinen Helfer (diesmal richtig):

$helper = Mage::helper('mymodule');

Ich erhalte:

Fatal error: Class 'MyCompany_MyModule_Helper_Data' not found

Was schief gelaufen ist?

In meiner Klassendefinition fehlte "_Data":

class MyCompany_MyModule_Helper extends Mage_Core_Helper_Abstract
{


}

Helfer / Benutzerdefiniert:

Dies ähnelt dem, was passiert, wenn Sie versuchen, auf eine Hilfsklasse in einer Datei mit dem Namen "Data.php" zu verweisen.

Ich beziehe mich auf meinen Helfer als:

$helper = Mage::helper('custom');

Mein Modul-Hilfspfad wurde wie folgt definiert:

<helpers>
    <mymodule>
        <class>MyCompany_MyModule_Helper</class>
    </mymodule>
</helpers>

Ich habe eine Klassendatei in app / code / local / MyCompany / MyModule / Helper / Custom.php

Ich erhalte den Fehler:

Fatal error: Class 'Mage_Custom_Helper_Data' not found

Was schief gelaufen ist?

Sie müssen andere Hilfsklassen in einem bestimmten Modul als Unterpfade zum Kurznamen Ihres Modulhilfsprogramms angeben. Dies ist ähnlich wie bei Blöcken und Modellen - aber auf der obersten Ebene gibt es keinen Unterordner.

Ich behebe diesen Fehler, indem ich auf meine Custom.php-Hilfsklassendatei als solche verweise:

$helper = Mage::helper('mymodule/custom');
Philwinkle
quelle
Überprüfen Sie den folgenden Link, es könnte auch ein Problem des fehlenden Helfers sein stackoverflow.com/questions/19590164/…
Neeraj Garg
4

Dies geschieht nur, wenn Sie die Erweiterung mit dem Compiler enable installieren. Hier ist, was Sie tun müssen

1 Schritt app / etc / module / Ihr Modul, das Sie kürzlich installiert haben, deaktivieren Sie das Modul

2 Schritt Login zu admin / system / tools compiler deaktiviere den compiler Lade den Code erneut hoch, es wird gut funktionieren, dann kannst du deinen Code erneut kompilieren

Viel Glück

user3766719
quelle
1
  1. Stellen Sie sicher, dass die Datei Data.php unter Ihrer vorhanden ist

codepool/extension_name/module_name/Helper/Data.php

  1. Wenn die im oben genannten Verzeichnis vorhandene Datei Data.php diese Datei öffnet und den Klassennamen kopiert, hat der Klassenname im Grunde genommen den Magento-Namenssinn

Paketname_Modulenname_Ordnername (Hilfsprogramm oder Block) _ Dateiname (Data.php)

<?php

class package_module_Helper_Data{

}
  1. Wechseln Sie in den Magento-Stammordner und stellen Sie sicher, dass die Datei package_module_Helper_Data.php in vorhanden ist

includes/src/

  1. Wenn Sie nicht sehen, erstellen Sie eine PHP-Datei mit diesem Namen (den Sie versehentlich erhalten haben) im Verzeichnis src
  2. Kopieren Sie den Inhalt von Data.php und fügen Sie ihn in eine neu erstellte Datei ein. Ich bin sicher, es wird dir helfen
  3. Wenn Sie dennoch eine Fehlermeldung erhalten oder magento nichts über die Erweiterung anzeigt, deaktivieren Sie einfach den Kompilierungsmodus unter magento System-> Tools-> Compilation
Jegan
quelle