Arkadaşlar merhaba, uzun süredir PHP ile uğraşıyorum ama Composer konusunda bir türlü istediğim otomatik yüklemeyi (autoload) çalıştıramadım. Kendi yazdığım sınıfları namespaceler ile düzenleyip Composer’ın otomatik yükleyicisine entegre etmek istiyorum, fakat sürekli “Class not found” hatası alıyorum. Proje yapımı şöyle: ana dizinde “src/” klasörü var, içinde “App/” altında “Controllers/”, “Models/” gibi alt klasörler var. Her sınıfın namespace’ini de “App\Controllers” veya “App\Models” olarak ayarladım. composer.json dosyama “autoload” bölümünü “psr-4” standardına göre ekledim: “App\\”: “src/” şeklinde. Ama ne yaptıysam olmadı. Belki dosya yolu veya namespace yazımında bir hata yapıyorumdur, ama saatlerdir uğraşıyorum, gözümden kaçan bir şey var.
Bu arada, Composer’ın vendor klasörünü oluşturup “composer dump-autoload” komutunu da çalıştırdım, hatta birkaç kere sildirip yeniden kurdum. Yine de sınıflarıma erişmeye çalıştığımda “Fatal error: Class ‘App\Controllers\UserController’ not found” hatası alıyorum. Dosya isimlerinin ve sınıf isimlerinin birebir aynı olduğundan eminim, yani “UserController.php” dosyası içinde “class UserController” var. Ayrıca “vendor/autoload.php” dosyasını da projemin giriş noktasında include ettiğimi düşünüyorum. Acaba “psr-4” yerine “classmap” kullanmak mı gerekirdi? Yoksa “src/” yolunda bir sorun mu var, “src/App/” mi olmalıydı? Bu konuda tecrübesi olan varsa yardımcı olabilir mi?
Son olarak, benzer bir sorunu daha önce yaşayıp çözen oldu mu? Mesela bazı arkadaşlar “composer install” ile vendor’u güncellemeyi unuttuğumuzu söylüyor, ama ben her seferinde hem “install” hem “dump-autoload” yapıyorum. Hata mesajı dışında herhangi bir uyarı da almıyorum. Belki PHP sürümüyle ilgili bir uyumsuzluk veya Composer’ın global ayarlarında bir sorun olabilir mi? Deneyimlerinizi paylaşırsanız sevinirim, gerçekten can sıkıcı bir durum.
Bu arada, Composer’ın vendor klasörünü oluşturup “composer dump-autoload” komutunu da çalıştırdım, hatta birkaç kere sildirip yeniden kurdum. Yine de sınıflarıma erişmeye çalıştığımda “Fatal error: Class ‘App\Controllers\UserController’ not found” hatası alıyorum. Dosya isimlerinin ve sınıf isimlerinin birebir aynı olduğundan eminim, yani “UserController.php” dosyası içinde “class UserController” var. Ayrıca “vendor/autoload.php” dosyasını da projemin giriş noktasında include ettiğimi düşünüyorum. Acaba “psr-4” yerine “classmap” kullanmak mı gerekirdi? Yoksa “src/” yolunda bir sorun mu var, “src/App/” mi olmalıydı? Bu konuda tecrübesi olan varsa yardımcı olabilir mi?
Son olarak, benzer bir sorunu daha önce yaşayıp çözen oldu mu? Mesela bazı arkadaşlar “composer install” ile vendor’u güncellemeyi unuttuğumuzu söylüyor, ama ben her seferinde hem “install” hem “dump-autoload” yapıyorum. Hata mesajı dışında herhangi bir uyarı da almıyorum. Belki PHP sürümüyle ilgili bir uyumsuzluk veya Composer’ın global ayarlarında bir sorun olabilir mi? Deneyimlerinizi paylaşırsanız sevinirim, gerçekten can sıkıcı bir durum.