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.xml
und ich haben diese Klasse
class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}
am /app/code/local/Webtex/Giftcards/Helper/Data.php
Pfad deklariert .
Ich habe den Compiler deaktiviert und den Cache geleert, indem ich ein leeres var/cache
Verzeichnis erstellt habe.
Ich fand überall, config.xml
dass 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
quelle
Antworten:
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 eingerichtetMyCompany_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:
Ich erhalte den Fehler:
Was schief gelaufen ist?
Mein Helferklassen-Alias ist wie folgt definiert
mymodule
:Ändern Sie meinen Shortcode, um
Mage::helper('mymodule')
das gewünschte Ergebnis zu erzielen .Falscher Klassenname
Ich beziehe mich auf meinen Helfer (diesmal richtig):
Ich erhalte:
Was schief gelaufen ist?
In meiner Klassendefinition fehlte "_Data":
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:
Mein Modul-Hilfspfad wurde wie folgt definiert:
Ich habe eine Klassendatei in app / code / local / MyCompany / MyModule / Helper / Custom.php
Ich erhalte den Fehler:
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:
quelle
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
quelle
codepool/extension_name/module_name/Helper/Data.php
includes/src/
quelle