Önemli hata: Arayüz başlatılamıyor


12

Benim magento mağaza bu hatayı atıyor:

Önemli hata: Arabirim somutlaştırılamıyor Magento \ Framework \ View \ Design \ Theme \ ResolverInterface on line /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 73

Neden ortaya çıkmaya başladığını bilmiyorum. Yeni modül kurulumu yapmadım. Mağaza iyi çalışıyordu.

Dosya izinlerini kontrol ettim ve orada sorun görmüyorum. Ayrıca / var / dir ve bence, oluşturulan tüm klasörleri / dosyaları silin.

[EDIT] Tercih, satıcı / magento / magento2-base / app / etc / di.xml olarak tanımlanmıştır

<preference for="Magento\Framework\View\Design\Theme\ResolverInterface" type="Magento\Theme\Model\Theme\Resolver" /> 

1
Ben um özel modül veya kod oluşturucu veya nesne yöneticisi Magento \ Framework \ View \ Design \ Theme \ ResolverInterface kullanmaya çalışıyorum
Pradeep Kumar

@PradeepKumar Hayır. Değilim.
Filipe Sá

2
önbelleğinizi ve içeriğini temizleyin var/generation.
Marius

@Marius, soruda belirtildiği gibi, / var / * klasörünü tamamen kaldırdım.
Filipe Sá

Afedersiniz. O çizgiyi kaçırdım.
Marius

Yanıtlar:


23

Redis kullanıyorsanız, çalıştırın:


redis-cli flushall



Ansible ( lxc - server) gibi bir ortam da kullanıyorsanız , bu komutu kapsayıcıda yapmanız gerekir. Ayrıca aşağıdakileri yaptım:

  • Açık var/generation
  • Açık var/cache
  • Magento modüllerini etkinleştir: bin/magento module:enable --all
  • Derleme DI bin/magento setup:di:compile

1
Orada çok fazla yanıltıcı çözüm vardı ve bu hemen işe yaradı

3
Magento modüllerini etkinleştir: bin / magento modülü: enable --all - Benim için çalıştı
Agnes

HAYIR! İyi bir uygulama değil! bin / magento modülü: enable --all chmod gibidir -R 777 :(
Kārlis Millers

6

Bu hatayı aldım ve var klasörünü temizleyip çalıştırarak çözüldü setup:upgrade. Bu çözülmezse di.xmldosyalarda hata arayın


özellikle benim için çalıştıvar/cache
Joshua Soileau

Teşekkürler redis-cli flushallbenim için çalıştı.
Sarjan Gautam

5

Aşağıdaki komutu çalıştırın ve kontrol edin.

rm -rf generated

rm -rf var/*

Benim için çalıştı.


2

Bu benim için çalıştı:

 sudo apt-get install php-intl

 sudo service apache2 reload

1

Benim durumumda, bir modülü kaldırmak zorunda kaldım ve modülün dosyalarını uygun yöntemleri izlemeden sildim ve sonra bu hata her yerde ekrandaydı. Çok aradıktan sonra modülün dosyaları aynı dizine geri değiştirmek için sona erdi ve var gerekli tüm klasörleri var ve aşağıdaki komutları koştu.

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy

ve hepsi düzeltildi. Daha sonra modülü çıkarmak için uygun yolları izledim. Umarım bu zaman tasarrufu sağlar. :-)


1

Önbelleği temizle rm -rf var/cache

Yeniden etkinleştirilirse, komut satırını kullanarak redis db'yi temizleyin:

$> redis-cli
$> flushall

0
php bin/magento c:c
php bin/magento setup:di:compile

sorununuzu çözecek


0

Döküm besteci otomatik yükleme dosyaları:

$ composer dumpautoload

Sonra:

bin/magento setup:upgrade
bin/magento setup:di:compile


0

Bu hata, aslında ve arabirim olan bir nesneyi (sınıfı) oluşturmaya çalıştığınızda oluşturulur. Bu normalde di.xml dosyasındaki bir sınıfın arabirimini geçersiz kılmadığınızda olur. Veya adminhtml dizinindeki di.xml dosyasında geçersiz kılın ve ön uçtaki arabirimi kullanmaya çalışın.

interface MyInterface{
   pubic function getVariable(): int
}

class MyClass 
implements MyInterface{

   protected $variable;

   pubic function getVariable(){
      return $this->variable;
   }
}

$variable = new MyInterface();

0

Bu hata, özellikle çekirdek Magento modüllerini etkinleştirirken veya devre dışı bırakırken modülleri doğrudan app / etc / config.php içinde etkinleştirme veya devre dışı bırakma nedeniyle de olabilir. Bu durumda yapılacak en iyi şey, önbelleğinizi temizlemek, önbelleği yeniden boşaltmak, verniği ve php-fpm'yi yeniden başlatmak olacaktır. Ve çalışıyor.

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.