Arabirim bildirilemiyor, çünkü ad zaten kullanılıyor


12

Yeni modülümde basit bir arayüz oluşturduktan sonra. Bin / magento kurulumuna yazdım: di: derlemek ve adın zaten kullanımda olduğunu söyleyen bir hata alıyorum.

İşte benim kod:

namespace Company\Test\Api;

/*
 *  @api
 */
interface XyzInterface {
    public function getSomething();
}

Sonra bu hatayı alıyorum:

Repositories code generation... 1/7 [====>-----------------------]  14% 2 secs 52.0 MiBPHP 
Fatal error:  Cannot declare interface Company\Test\Api\XyzInterface, because the name is already in use in .../app/code/Company/Test/Api/XyzInterface.php on line 13

Çizgi "arayüz XyzInterface" ne yaptığımı emin değilim.


1
Yığın izlemesini görmek için lütfen -vvv seçeneği ile komutu çalıştırır mısınız? Dosya herhangi bir nedenle iki kez dahil edilebilir.
BuskaMuza

Sadece "PHP Fatal Error" gösteriyor
Nelly

Ayrıca xdebug'u etkinleştirmeyi de deneyebilirsiniz. Bence geri izlemeyi göstermeye yardımcı olmalı.
BuskaMuza

1
Bu hata da yanlış
yazılmış

Yanıtlar:


36

Bugün aynı tip hata aldım:

PHP Önemli hata: Sınıf Class \ Name \ Burada bildirilemiyor, çünkü ad zaten 100 satırındaki /var/www/m2/magento2/app/code/path/to/the/class.php dosyasında kullanılıyor

burada 100 satırı dosyanın sonu olur.

Yaklaşık 4 saat hata ayıklamadan sonra gerçekten nedenini buluyorum: ad alanı beyanında yanlış baskı. Son ana kadar, isim beyanında tipografik bir hata olduğuna inanmadım, ancak tüm isimleri tekrar yazdığımda - hata kayboldu. Bu makale çok yardımcı oldu:

Bir süre başımı kaşıracağım, neler olduğunu merak edeceğim ve sonunda bunun bu olduğunu anlayacağım

Pulsetorm

yani bir ad alanı adını yanlış yazdım ve ilk otomatik yükler sınıf dosyasını yüklediğinde, aradığı sınıfı tanımlamayacak ve sonra ikinci bir otomatik yükleyici (Composer genellikle) tekrar yükler ve yeniden tanımlamaya çalışır. yanlış sınıf.

yani, Magento sınıfı istedi

Pulsestorm\Helloworld\Observers\Block

ama ben tanımladım

Pulsetorm\Helloworld\Observers\Block

yanlış isim alanı sayesinde.

Teşekkürler Alan Storm :)

GÜNCELLEME:

Bu hatanın başka bir türü, bu örnekte olduğu gibi ad alanının eksik bölümüyle birlikte yanlış Ad Alanı bildirimi:

Hata:

Havuz kodu oluşturma ... 1/7 [====> -----------------------]% 14 1 sn 50.0 MiBPHP Önemli hata: Beyan edilemez class Migration \ Step \ Version11410to2000Test, çünkü ad zaten /var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php adresinde zaten kullanılıyor 109 numaralı hat

burada 109 satırı dosyanın sonu olur.

Dosyada , bu sınıfın yolu olduğu için ad alanını doğru ad alanının olması gerektiği vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.phpgibi bulduk . Ad alanını değiştirdikten sonra hata giderildi.Migration\StepMigration\Step\UrlRewriteMigration/Step/UrlRewriteMigration/Step/UrlRewrite


1
Ben de aynı sorunu yaşadım, bu çılgın bir mesele
Hamza Alayed

Ad alanı sorunu için +1. 2 saat harcadım. Çok teşekkürler!
wezzy

1
Ayrıca sadece bunu eklemek istiyorum , kasa eşleşmesi gerektiği gibi dizinlerinizi adlandırırken ekstra özen gösterin - bu da iki saat daha boşa olabilirdi!
Smithee
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.