spl_autoload_register fonksiyonu ile Composer Beraber Kullanma

Merhabalar,

Genel olarak kendi sınıfları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
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
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.

Yazar: arcface

Bilişim Teknolojileri alanıyla başlayan merakımı devam ettirmem neticesinde tam donanımlı web geliştiricisi olarak bir kariyer edindim. Bu güne kadar bir çok kişi ve kurumun kurumsal web sitesini hayata geçirdim. Bunların arasında yeni açılan kurumlar kadar köklü kurumlarda yer aldı. İşi sadece web sitesi kurup bırakmakla sınırlamak istemediğim için içerik editörlüğü de dahil olmak üzere reklam yönetimine kadar her alana el uzattım ve bilgi edindim. Şu an yaptığım her işin en uç noktasından reklam planlamasına kadar tüm adımlarını kendim gerçekleştiriyorum. Herhangi bir kuruma bağlı olmadan çalıştığım için bütçe dostu fiyatlarla kişi ve kurumlara çözümler üretiyorum.