Saya telah menginstal satu ekstensi modul yang menyebabkan kesalahan fatal
"Kesalahan fatal: Kelas 'Mage_Giftcards_Helper_Data' tidak ditemukan di .... / app / Mage.php on line 546" di admin.
Saya telah mereferensikan tautan ini /programming//a/9191286/2919940 dan tautan ini juga /magento//a/7133/3693
Namun saya memiliki
<global>
<helpers>
<giftcards>
<class>Webtex_Giftcards_Helper</class>
</giftcards>
</helpers>
</global>
di saya config.xml
dan saya memiliki kelas ini
class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{
// my methods
}
dideklarasikan di /app/code/local/Webtex/Giftcards/Helper/Data.php
path.
Saya telah menonaktifkan kompiler dan membersihkan cache dengan membuat var/cache
direktori kosong .
Saya menemukan everwhere yang config.xml
seharusnya memiliki kelas pembantu mendefinisikan dan Data.php seharusnya menyatakan kelas pembantu itu.
Tetapi saya memiliki keduanya dalam kasus saya, apa yang bisa menjadi alasan untuk kesalahan ini? Saya telah menguji modul itu pada instalasi magento segar saya juga,
Versi Magento adalah 1.7.0.2
Tolong berikan bantuan untuk kesalahan ini ?? Jika ada konflik nama kelas, bagaimana kita bisa men-debug itu ??
Terima kasih
sumber
Jawaban:
Ini biasa terjadi ketika mereferensikan pembantu yang hilang. Dalam banyak kasus, nama kelas itu sendiri salah bentuk atau nama pendek Anda merujuknya salah, itulah sebabnya Magento mencarinya di jalan
Mage_Giftcards_Helper_Data
(lihat contoh 1 di bawah). Untuk contoh-contoh berikut ini saya telah menyiapkan sebuah modul bernamaMyCompany_MyModule
.Ini hanya beberapa dari banyak cara yang bisa Anda lakukan salah dengan mendefinisikan pembantu:
Alias kelas pembantu salah:
Saya mereferensikan pekerja saya sebagai:
Saya mendapatkan kesalahan:
Apa yang salah?
Alias kelas pembantu saya didefinisikan sebagai
mymodule
:Mengubah kode pendek saya untuk
Mage::helper('mymodule')
menghasilkan hasil yang diinginkan.Nama kelas salah bentuk
Saya mereferensikan pembantu saya (kali ini dengan benar):
Saya menerima:
Apa yang salah?
Definisi kelas saya tidak ada "_Data":
Pembantu / Kustom:
Ini mirip dengan apa yang terjadi ketika Anda mencoba merujuk ke kelas pembantu dalam file yang tidak bernama "Data.php".
Saya mereferensikan pekerja saya sebagai:
Jalur pembantu modul saya didefinisikan sebagai:
Saya memiliki file kelas di app / kode / lokal / MyCompany / MyModule / Helper / Custom.php
Saya mendapatkan kesalahan:
Apa yang salah?
Anda perlu menentukan kelas pembantu lainnya dalam modul tertentu sebagai sub-jalur ke nama pendek pembantu modul Anda. Ini mirip dengan cara kerja blok dan model - tetapi pada tingkat teratas tidak ada subfolder.
Saya memperbaiki kesalahan ini dengan merujuk file kelas pembantu Custom.php saya seperti:
sumber
Ini hanya terjadi ketika Anda menginstal ekstensi dengan mengaktifkan kompiler. Inilah yang harus Anda lakukan
1 Langkah app / etc / module / module Anda yang baru saja Anda instal menonaktifkan modul
2 Langkah Masuk ke admin / sistem / alat kompiler nonaktifkan kompilator Unggah kode lagi itu akan berfungsi dengan baik maka Anda dapat mengkompilasi kode Anda lagi
semoga berhasil
sumber
codepool/extension_name/module_name/Helper/Data.php
includes/src/
sumber