- Katılım
- 25 Eyl 2020
- Mesajlar
- 216
- Tepkime puanı
- 162
- Puanları
- 48
- Konum
- istanbul
- Web sitesi
- www.arcface.net
Merhabalar,
Genel olarak kendi sınıfılarını yazan kişilerin çoğu tek tek require etmemek için spl_autoload_register işlevini kullanır ama eğer composer ile bir şeyler dahil edecekseniz new ile sınıfı dahil ettiğiniz anda spl_autoload_register çalıştırdığı fonksiyon da bu isime ait dosyanın require edilmediğini görüp hata verecektir.
Aslında önüne geçmesi çok basit composer'dan önce büyük ihtimalle şu şekil'de kullanıyordunuz;
Söylediğim gibi composer ile dahil ettiklerinizi kullanacak iseniz bu kod yapınız da küçük bir değişiklik yapmanız yeterli olacaktır.
Farklı olarak ne yaptık siniflarim adlı dizinde bu fonksiyonun adına ait bir dosya var mı? baktık var ise dahil ettik yok ise null boş bıraktık
Böylece bu basit hatanın önüne geçebilirsiniz.
Genel olarak kendi sınıfılarını yazan kişilerin çoğu tek tek require etmemek için spl_autoload_register işlevini kullanır ama eğer composer ile bir şeyler dahil edecekseniz new ile sınıfı dahil ettiğiniz anda spl_autoload_register çalıştırdığı fonksiyon da bu isime ait dosyanın require edilmediğini görüp hata verecektir.
Aslında önüne geçmesi çok basit composer'dan önce büyük ihtimalle şu şekil'de kullanıyordunuz;
PHP:
<?php
function SinifYukle($SinifAdi)
{
require . 'siniflarim/' . strtolower($SinifAdi) . '.php';
}
spl_autoload_register('SinifYukle');
Söylediğim gibi composer ile dahil ettiklerinizi kullanacak iseniz bu kod yapınız da küçük bir değişiklik yapmanız yeterli olacaktır.
PHP:
<?php
function SinifYukle($SinifAdi)
{
if (file_exists('siniflarim/' . strtolower($SinifAdi) . '.php')) {
require . 'siniflarim/' . strtolower($SinifAdi) . '.php';
}
}
spl_autoload_register('SinifYukle');
Farklı olarak ne yaptık siniflarim adlı dizinde bu fonksiyonun adına ait bir dosya var mı? baktık var ise dahil ettik yok ise null boş bıraktık
Böylece bu basit hatanın önüne geçebilirsiniz.