2014-05-19 27 views
16

Laravel projemde CustomerLinks adlı bir model oluşturdum. Model, app/models klasöründe bulunur. Benim besteci dosyası bir AutoLoad vardır:Laravel/Besteci: Bileşik olmayan ad ile kullanım deyimi

"autoload": { 
    "classmap": [ 
     ... 
     "app/models", 
     ... 

    ], 
    ... 
}, 

Ve başvuran benim ExtendedUserController bir use bildirimde bulunmamış CustomerLinks:

<?php 

... 
use CustomerLinks; 
... 

class ExtendedUserController extends UserController { 

Anladığım kadarıyla olduğunu besteci dosyasında özdevinimli_yükle mülkiyet uygulaması vardır çünkü/sınıf haritasındaki modeller, bir isim alanı öneki olmadan use CustomerLinks kullanabilmem gerektiği anlamına gelir.

Bu çalışır, ancak her zaman benim ExtendedUserControler bir değişiklik yapmak ve ben hata alıyorum benim tarayıcınızı yeniden: use CustomerLinks çizgi genişletilmiş kullanıcı kontrolöre

The use statement with non-compound name 'CustomerLinks' has no effect 

hata noktaları.

Ben composer dump-autoload her şey iyi çalışır, ama ben desen

make a change -> dump autoload -> refresh browser -> repeat

hata ile uğraşan bazı yolu var mı takip etmek zorunda olduğunda son derece rahatsız edici hale geldiğinde?

cevap

27

Ad alanı içinde değilseniz (örn. Kök ad alanındaysanız), ve kullanmak istediğiniz sınıf da bir ad alanında (yani kök ad alanında değil) ise, use'un anlamı yoktur. çünkü kod bu olmadan aynı şekilde çalışacaktır. Bu ifadeyle hiçbir şey almıyorsunuz.

Besteci, bununla hiçbir ilgisi yoktur, başka hiçbir otomatik yükleme yoktur. PHP'nin kendisi nasıl çalışır.

+11

Son cümle faydalı değildi. Hepimizin öğrenme ortamında sürekli bir şekilde varız. –

+5

Bence sihirli teknolojimizin hangi bölümünün sorumlu olduğu bilgisinin geçerli olduğunu düşünüyorum. Eğer TO bir şey yapmazsa, asla işe yaramayacak durumu iyileştirmesi gerekiyorsa, ona madde arasındaki zihinsel bağlantısının yanlış olduğunu söylemeliyim. Aynı zamanda ilgili sorunlar için doğru dokümantasyon web sitesini kullanmasına izin verir. – Sven

+0

Sadece kullanım kitaplığını silin; çizgi ve tekrar koş. Benim için çalıştı. – Dazzle

İlgili konular