Saya telah menginstal magento 1.7 dan bekerja dengan baik sampai sekarang.
Saya mengimpor produk setiap hari. Jika ada produsen baru, saya menambahkannya di atribut Produsen berbasis drop-down.
Hari ini, saya telah menambahkan opsi Produsen baru di atribut back-end dan pergi untuk mengimpor produk yang berhasil mengimpor produk.
Tetapi setelah itu saya mencoba membuka halaman apa saja di situs admin Magento, itu berakhir dengan pesan kesalahan di bawah ini
Kesalahan fatal: Tidak dapat mengganti metode akhir Mage_Core_Model_Abstract :: clearInstance () di /var/www/html/app/code/core/Mage/Catalog/Model/Category.php on line 36
Line 36
baru saja mulai keriting {
untuk kelas ini
class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36
Dan saya telah memeriksa Mage_Catalog_Model_Category
tetapi tidak ada metode yang didefinisikan dengan nama clearInstance
. Benar-benar menyebalkan.
FYI: Saya tidak menyentuh satu karakter kode saya hanya menggunakan situs ADMIN untuk mengimpor produk dan menambahkan beberapa atribut yang diperlukan
sumber
Jawaban:
Perilaku ini biasanya tidak akan terjadi kecuali Anda telah memodifikasi kode Magento dengan cara tertentu - baik melalui ekstensi pihak ke-3, pengeditan kode inti atau penyesuaian umum.
Fakta itu terjadi di admin, sebelum model data apa pun benar-benar dimuat (kisi-kisi produk dll.) Akan menyiratkan itu disebabkan oleh ekstensi - bukan data yang diimpor.
Jika terjadi di kisi produk - maka itu bisa menjadi model produk yang salah sebagai akibat dari impor gagal.
Tetapi setelah pencarian cepat, ada banyak hasil pencarian google diindeks dari toko Magento dengan kesalahan yang sama. Jadi itu bisa di intinya (walaupun, kita belum pernah menemukannya) - tapi saya ragu.
Melihat inti dalam 1.7
Anda seharusnya tidak memiliki penggantian
clearInstance()
metode ini. Bahkan, metode ini hanya dideklarasikan sekali, diapp/code/core/Mage/Core/Model/Abstract.php
Saya telah melihat kesalahan seperti ini terjadi ketika orang secara keliru menggunakan
include
kelas yang diganti (menghasilkannya dimuat dua kali).Pilihan terbaik Anda adalah mengikuti prosedur debug standar
./app/code/local
direktori./app/code/community
direktoriDan lihat apakah masalahnya tetap ada.
sumber
masalahnya di sini adalah dengan APC, nonaktifkan APC dan masalahnya akan hilang.
sumber
menggunakan standar php untuk kesalahan khusus ini:
itu jelas berarti bahwa Anda telah
Mage_Core_Model_Abstract
menggunakan kelas tambahanclass Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
dan dalam kelas ini Anda telah
clearInstance()
mendefinisikan sebagai fungsi.Karena
clearInstance()
fungsi adalah fungsi akhir sehingga Anda tidak diizinkan untuk memodifikasi fungsi ini di kelas mana pun.apa sebenarnya baris 36 Anda dengan menambahkan beberapa kode boneka di atas dan di bawah baris yang Anda asumsikan adalah baris 36.
Saya telah melihat pengembang memodifikasi atau melihat file dalam folder tertentu di mana ketika kompiler diatur ke file kelas php benar ada di folder lain.
sumber
clearInstance
dilocal
dancommunity
kolam. Namun, saya menghapus kata kunci akhir dari deklarasi fungsi untuk menyelesaikan masalah sementara, Tapi itu mengganggu saya bahwa ketika saya telah menambahkanfinal
kata kunci kembali di depan fungsi, semuanya masih berfungsi dengan baik.Saya memiliki masalah yang sama dengan versi PHP 5.4 terbaru pada versi Magento yang berbeda (di area frontend) dan tidak bisa menyelesaikan ini dengan kode atau cache. Apakah Anda memeriksa versinya?
Jika ini masalahnya, kembalikan ke versi sebelumnya akan patut dicoba.
sumber
Baru saja mengalami ini dan menemukan posting bug yang belum dikonfirmasi menyatakan pengaturan yang sangat mirip.
Tampaknya ini adalah bug dengan kombinasi
Dua solusi terbaik untuk masalah saat ini tampaknya adalah:
A) Turunkan PHP ke versi yang lebih rendah, mungkin 5.4.11 atau lebih rendah.
B) Nonaktifkan APC, jika tidak memungkinkan lihat A. :)
sumber
Saya menyelesaikan masalah ini untuk Magento 1.9 dengan mengubah cara PHP berjalan (Di panel kontrol hosting saya swiched Jalankan PHP sebagai ... ke Aplikasi Fast CGI). Saya sama sekali tidak tahu apa konsekuensi lain dari perubahan ini. Mencoba mencari tahu itu saat ini.
sumber
Saya mengharapkan masalah yang sama. Tidak ada deklarasi metode Instance yang jelas di luar kumpulan inti.
Saya menganalisis nginx access.log dan error.log saya dan memperhatikan bahwa kesalahan ini muncul ketika Google dan Bing mengunjungi situs saya ribuan kali dalam beberapa menit dalam url yang berbeda, membuat banyak permintaan dan pertanyaan dari Magento. Hal-hal ini menurunkan situs saya.
Saya kira saya memperbaikinya dengan mengurangi kekuatan crawler dari google dan bing di panel webmaster mereka.
Anda dapat menggunakan GoAccess atau Request Log Analyzer untuk menganalisis file log Anda dan melihat agen pengguna pengunjung teratas.
sumber