Yönetici Sayfalarında Önemli Hata


15

Magento 1.7 yüklü ve şimdiye kadar iyi çalıştı.

Ürünleri günlük olarak ithal ediyorum. Yeni bir üretici varsa, açılır üretici tabanlı özelliğine eklerim.

Bugün, arka uç özelliğine yeni Üretici seçeneği ekledim ve ürünleri başarıyla ithal ettiği ürünleri almaya gittim.

Ama bundan sonra Magento yönetici sitesinde herhangi bir sayfayı açmaya çalışıyorum, aşağıdaki hata mesajı ile bitiyor

Önemli hata: 36 satırındaki /var/www/html/app/code/core/Mage/Catalog/Model/Category.php dosyasındaki son yöntem Mage_Core_Model_Abstract :: clearInstance () geçersiz kılınamıyor

Line bu sınıf için 36yeni başladı{

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36

Ve kontrol ettim Mage_Catalog_Model_Categoryama adıyla tanımlanan bir yöntem yok clearInstance. Gerçekten sinir bozucu.

Bilginize: Tek bir kod karakterine dokunmadım, sadece ürünleri içe aktarmak ve bazı gerekli özellikleri eklemek için ADMIN sitesini kullanıyorum


Neden -1? İnsanlara yardım etmek için buradayım. Bu Magento hakkında soru sormak için bir yer değil.
güneş ışığı

Yaklaşık -1, bazen insanlar garip tepki veriyor ... Sorununuz hakkında, hata mesajınıza yazılmıştır, sadece okuyun. Msgstr "NİHAİ YÖNTEMİ AŞIRI GEÇEMEZ ...".
Yapamayacağınız bir

@ SylvainRayé: Tek bir kod karakterine bile dokunmamıştım, soruyu okudunuz mu ?, Sadece ürünü ithal etmek için ADMIN sitesini kullanıyorum. Bu hata atıyor Magento ve yine kötü kodlayan Magento
güneş ışığı

@ SylvainRayé: Hata düşündüğünüz kadar lite değil, Özellikle çekirdek koddan geldiğinde ve koda dokunmadan bile.
güneş ışığı

Downvote perileri bu toplulukta oldukça agresiftir, görmezden gelin. Sınıfı genişleterek veya üzerine yazarak üçüncü taraf uzantıların soruna neden olduğu bir sorun olabilir. 3. tarafın tüm uzantılarını işe
yarayıp yaramadığını

Yanıtlar:


5

Magento'nun kodunu üçüncü taraf uzantıları, çekirdek kod düzenlemeleri veya genel özelleştirmeler yoluyla bir şekilde değiştirmedikçe, bu davranış normalde gerçekleşmez.

Gerçekte yüklenen herhangi bir veri modelinden (ürün ızgarası vb.) Önce yöneticide gerçekleşmesi, bunun içe aktarılan verilerden değil bir uzantıdan kaynaklandığını ima eder.

Ürün ızgarasında meydana geliyordu - o zaman başarısız bir içe aktarmanın sonucu olarak hatalı ürün modeli olabilir.

Ancak hızlı bir aramadan sonra, Magento mağazalarının aynı hatayla dizine eklenmiş birçok Google arama sonucu var. Bu yüzden çekirdeğin içinde olabilir (yine de hiç karşılaşmadık) - ama şüpheliyim.

1.7'de çekirdeklere bakmak

+34 abstract class Mage_Catalog_Model_Abstract extends Mage_Core_Model_Abstract
+35 {
+36     /**
+37      * Identifuer of default store

clearInstance()Yöntemi geçersiz kılmamalısınız . Aslında, bu yöntem sadece bir kez,app/code/core/Mage/Core/Model/Abstract.php

final public function clearInstance()

Bu tür hatalar, insanlar yanlışlıkla includegeçersiz kılınan bir sınıf için kullanıldığında ortaya çıktı (iki kez yüklenmesine neden oluyor).


En iyi seçenekleriniz standart hata ayıklama prosedürünü takip etmektir

  1. Temiz bir çekirdeği geri yükleme
  2. Temiz bir adminhtml dizinini geri yükleme
  3. ./app/code/localDizini yeniden adlandır
  4. ./app/code/communityDizini yeniden adlandır

Ve sorunun devam edip etmediğine bakın.


3

buradaki sorun APC ile ilgili, APC'yi devre dışı bırakın ve sorun ortadan kalkacaktır.


APC'yi devre dışı bırakmak bir seçenek değildir. Ama iyi fikir! Bunu asla düşünmezdim! @ sunlight yüklü birden fazla eflatun var mı? ve aynı önek tanımlandı mı? Aynı önbellekteki başka bir mağazada sorun olabilir.
Fabian Blechschmidt

3

bu belirli hata için php standartlarına göre gidiyor:

Önemli hata: 36 satırındaki /var/www/html/app/code/core/Mage/Catalog/Model/Category.php dosyasındaki son yöntem Mage_Core_Model_Abstract :: clearInstance () geçersiz kılınamıyor

açıkça Mage_Core_Model_Abstractkullanarak sınıf genişletilmiş anlamına gelir

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract

ve bu sınıf içinde clearInstance()bir işlev olarak tanımladınız.

Gibi clearInstance()genişletilmiş sınıfın herhangi bu işlevi değiştirmek için izin verilmez böylece işlevine son fonksiyondur.

çizginin üstüne ve altına biraz kukla kod ekleyerek çizginizin 36 tam olarak ne olduğunu 36.

Geliştiriciler değiştiren veya belirli bir klasördeki dosyaları içine bakarak derleyici gerçek php sınıf dosyaları olarak ayarlanmış başka bir klasörde gördüklerini gördüm.


Ben adında herhangi bir yöntem yoktur, kontrol clearInstanceiçinde localve communityhavuz. Bununla birlikte, sorunu geçici olarak çözmek için son anahtar kelimeyi işlev bildiriminden kaldırdım, ancak işlevin finalönüne anahtar kelime eklediğimde , işler hala düzgün çalışıyor.
güneş ışığı

Muhtemelen sınıfınız sonassi tarafından belirtildiği gibi iki kez dahil ediliyor: Bu tür hataların insanlar yanlışlıkla geçersiz kılınan bir sınıf için dahil edildiğinde ortaya çıktığını gördüm (iki kez yüklenmesine neden oluyor).
Oscprofessionals

2

Farklı bir Magento sürümü (ön uç alanında) en son PHP 5.4 sürümü ile aynı sorunu vardı ve kod veya herhangi bir önbellek ile bu çözemedi. Sürümü kontrol ettiniz mi?

Bu durumda, önceki sürüme geri dönüş denemeye değer.


2

Sadece bunu deneyimli ve çok benzer kurulum belirten teyit edilmemiş bir hata bulundu.

Bu bir kombinasyon gibi bir hata gibi görünüyor

  • PHP 5.4.12+
  • Magento 1.7.x (1.13.x EE)
  • APC (3.1.x)

Apache hata_logunda AH00052 gösterilir: çocuk pid XX çıkış sinyali Segmentasyon hatası (11)

Görünüşe göre soruna en iyi iki çözüm şudur:

A) PHP'yi daha düşük çalışan bir sürüme, muhtemelen 5.4.11 veya daha düşük bir sürüme düşürün.

B) APC'yi devre dışı bırakın, mümkün değilse A.


Ben aynı sorunu MariaDB, Magento 1.7.0.2 ile PHP 5.3.27, hiçbir APC ile yaşıyorum. Ayrıca Varnish + nginx kullanıyorum. Bu bazen php-fpm, vernik, nginx, vb. Yeniden başlatmaya zorlayan aralıklı bir konudur. Bu arada, herhangi bir yerde bildirilen herhangi bir çekirdek olmayan clearInstance yöntemi bulamadım. Belki de sınıfları iki kez içeren bir şey vardır. Ama garip, çünkü bir ayrıştırıcı hatası olsaydı, her seferinde olurdu.
Ricardo Martins

1

Ben Magento 1.9 için PHP çalışma şeklini değiştirerek bu sorunları çözdü (Hosting controle panelinde Ben PHP gibi Çalıştır ... Hızlı CGI Uygulaması için swiched). Bu değişikliğin başka sonuçları ne olacağına dair hiçbir fikrim yok. Şu anda anlamaya çalışıyorum.


0

Ben de aynı sorunu bekliyordum. Çekirdek havuzun dışında hiçbir yerde clearInstance yöntem bildirimi yoktu .

Nginx access.log ve error.log'umu analiz ettim ve Google ve Bing botları sitemi birkaç dakika içinde binlerce kez farklı URL'lerde ziyaret ederek magento'dan birçok istek ve sorgu yaptığında bu hataların göründüğünü fark ettim. Bu şeyler sitemi devre dışı bırakıyor.

Sanırım bunu tarayıcıdan gelen gücü azaltarak ve web yöneticilerinin panellerine bing yaparak düzelttim.

Sen kullanabilirsiniz GoAccess veya iste Log Analyzer günlük dosyanızı analiz ve üst ziyaretçi kullanıcı aracısı görmek için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.