ile

PHP ile içerik yönetim sistemi – 5 Gereksiz kod tekrarlarından kaçınmak ve hataları başından önlemek

siyahbeyaz

Kalan iki sınıfımız daha var. Kategoriler ve Resimler. Bir önceki bölümde hazırladığımız gibi, diğer iki sınıf dosyasını da hazırlayalım:

Kategoriler sınıfı:

Dosyalar sınıfı:

Şimdilik burada dosya ve dizin işlemlerini kodun içine yerleştirmedim.

Bir şey dikkatinizi çekti mi? Üç sınıfta da kodlar neredeyse aynı. Bir sürü tekrar var. Kendimizi tekrar etmememiz gerekiyor. Bir şey eğer çok kullanılıyorsa, bunu gruplayıp, ihtiyacımız olduğu zaman kullanmalıyız. Bunu şimdilik sonraya bırakalım.

Projeyi ne de olsa çalışıyor diye bu şekilde bırakırsanız, hapı yutmanız mümkündür. Neden mi? Çünkü, her sınıfın içinde ayrı bir veritabanı bağlantısı fonksiyonu var. Bu kesinlikle olmaması gereken bişey. Bu şekilde hangi sınıfın hangi veritabanına bağlandığını kontrol edemeyiz.

Bunlardan farklı olarak, her sınıfta veritabanı nesnesini yeniden oluşturuyoruz. Eğer veritabanı sınıfı bozuksa, bu sınıfımızın çalışmasını öldürecektir. Bunun yerine nesneyi farklı bir yerden sınıfa dahil etmek daha doğru olacak.

Ayrıca farklı bir veritabanı kullanmak istediğimizi farzedelim. Binlerce satır kodu nasıl değiştireceğiz? Bu yüzden sınıflar içerisinde SQL kodu kullanmak gerçekten mide bulandırıcı. Yine de şimdilik SQL kodları orda kalsın.

En çok kullandığımz kod, veritabanına bağlanmak için kullandığımız.

Bu kod tüm sınıflarda aynı. Bu sınıfı kodlarımızdan silelim ve ayrı bir sınıf yaratalım. Ancak tüm diğer sınıflarımızda bu yeni bağlantı sınıfını kullanalım.

Bu bağlantı sınıfımızı oluşturduk. Tek veritabanı bağlantımızı bu sınıftan çağıracağız. __construct() kısmına dikkat ettiniz mi? “__” ifadesi ile bağlayan metodlar sihirli metodlardır. __consturct() ifadesi, sınıftan yeni bir metod yaratıldığına otomatik olarak çalışan metodlardır. Bunu anlattım ama bunu kullanmayacağız. Çünkü her programı çalıştırdığımızda bu ayarları tek tek girmemiz saçma olur. Bunun yerine temel bir program sınıfı yaratacağız. Bütün gereklilikleri alsın, ayarları belirlesin ve programı kullanımımıza hazır hale getirsin. Bunu da bir sonraki yazıda yapacağız.

Yorumla

Yorum