⊗ppOpNsAu 105 of 107 menu

PHP'de OOP'de Sınıf Otomatik Yükleme

Bir sınıfı kullanmak için onu require ile bağlamamız gerektiğini zaten biliyorsunuz. Bir projede çok fazla sınıf olduğunda, yazması çok zahmetli ve kontrol etmesi zor olan çok sayıda bağlantı ortaya çıkar.

Bu sorunu çözmek için PHP'ye sınıf otomatik yükleme eklendi. Otomatik yükleme, PHP'nin bir sınıfa kodda erişim girişiminde bulunulduğunda o sınıfın dosyasını otomatik olarak yüklemesine olanak tanır. Ancak, sınıflar öylece yüklenmeyecek - dosya ve sınıf klasörlerinin isimlendirilmesine ilişkin herhangi bir kurala uyarak, onları site klasörlerine özel bir şekilde yerleştirmek gerekir. PHP'nin yerleşik kurallarını kullanabilir veya kendi kurallarınızı oluşturup onları kullanabilirsiniz.

Öncelikle PHP'nin standart kuralını inceleyelim. Bu kural, eğer bir sınıf dosyamız varsa, site klasörlerindeki bu dosyanın yolu, dosyanın isim alanıyla eşleşmeli ve dosya adı, içinde bulunan sınıfın adıyla eşleşmelidir. Bu durumda, klasör ve dosya adları küçük harf olmalıdır.

Bir örnek üzerinden inceleyelim. Aşağıdaki sınıfa sahip olduğumuzu varsayalım:

<?php namespace Core\Admin; class PageController { } ?>

Kurala göre, bu sınıf /core/admin/ klasöründe, pagecontroller.php dosyasında bulunmalıdır.

Şimdi index.php dosyasında sınıfımızı, require ile bağlamadan, otomatik yükleme kullanarak kullanalım. Bunun için, sınıfların çağrıldığı dosyanın başında spl_autoload_register fonksiyonunu çağırmak gerekir. Bunu yapalım:

<?php spl_autoload_register(); // otomatik yüklemeyi etkinleştir $obj = new Core\Admin\PageController; // sakin bir şekilde nesne oluştur ?>

index.php dosyasında sınıfların otomatik yüklenmesini etkinleştirin. Klasör ve dosya adlandırma kuralına uyarak Core\User sınıfını, Core\Admin\Controller sınıfını ve Project\User\Data sınıfını oluşturun. index.php dosyasında bu sınıfların nesnelerini oluşturun.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet