PHP Veritabanı Sınıfı

6 Cevap php

Bu veritabanı etkileşim (örn. Armut MDB2 veya PHP'nin PDO) için önceden oluşturulan sınıf / API kullanmak veya kendi oluşturmak için iyi midir?

Ben sadece 1 veritabanı ile mysql kullanarak ve DELETE sorgularında, nispeten basit bir SELECT, INSERT, UPDATE yerine edilecek edilecektir.

6 Cevap

Küçük kişisel projeler için, ben bir pre-built boyunca kendi DB arabirim sınıfı kullanmayı tercih, ama diğer insanlar önceden inşa API'leri tarafından yemin ederim. Kendi sınıfını yaratarak, neredeyse tekerleği yeniden icat edilmesi için garanti edilir. Genellikle önceden oluşturulmuş API kullanarak sadece o API içinde komutlarını vermek öğrenmek gerektirir. Eğer programcı bir ekiple çalışıyorsanız, ben bir iyi belgelenmiş API kullanarak ve en iyi uygulamalar ve prosedürler içine kullanımını birleştiren öneririz. Benim durumumda ekip programlama ve ev demlenmiş DB sınıflar iyice karışmaz hissettim.

Böyle bir sınıf yazdım eğer, diyecek bir şey, ben bir öğrenme fırsatı olarak böylece tavsiye sadece sahneleri anlama arkasında bazı olsun. Ben aşina olduğu bir API kullanılan diğer programcılar tarafından yapılan çalışmaları ayıklarken benim kendi sınıf yazma panoda deneyimi kesinlikle daha birkaç kez daha bana yardımcı oldu.

[Düzenle - Sabit bazı gerçekten kötü dilbilgisi]

Ben de yaptım - Önceden oluşturulan sınıf muhtemelen Düzeltilebilirlik aşkına iyi kullanarak, farklı veritabanı backendleri içinde geçiş genellikle kolay olduğu gibi. Ancak, benim kendi veritabanı sınıfları kolaylığı kullanımı gibi, yani benim kişisel projeler için ben genellikle benim kendi yazmak.

Hatırlıyorum kendi yazmak ve müşteri veritabanlarını değiştirmek istiyorsa, bir uzantı yazmak çağrı alır biri olmaya gidiyoruz - Ben onu destekleyen rahat sürece ben bir dış iş için kendi yazmak olmaz .

Orada ortak RDBMS için birçok kalite API'leri vardır ve bu API'leri uygulamak gerekmez özel gereksinimleri vardır sürece bu kullanmak genellikle iyi bir fikirdir. Dikkat etmeniz gereken bir kural tekerleği yeniden icat değil, gerekli değil genişletmek etmektir.

Zend Framework birçok RDBMS API'leri vardır ve oldukça popüler. Eğer bütün çerçeveyi kullanmak gerekmez, böylece çerçeve tasarlanmıştır. Siz sadece kodunuzda gerekli sınıf (lar) eklemek için include deyimi kullanmak gerekir.

Veritabanı etkileşimi gibi kritik bir şey için PDO veya mysqli'nin gibi önceden hazırlanmış solüsyon ile gitmek istiyorum. Neden ihtiyacınız olan her şey zaten oluşturulur, bir veritabanı erişim sınıfını yeniden tüm sorun geçmesi? Eğer dahil değildir işlevselliğe ihtiyacınız varsa her zaman onu genişletmek olabilir.

Kesinlikle kullanımı PDO veya sizin durumunuz için doğrudan mysqli ya.

Eğer must birden RDBM en çalıştırmak dağıtılabilir yazılım yazmak planlıyorsanız ben hiç bir DB-soyutlama katmanı kullanmak tek nedeni vardır.

(Sadece mysql) hedef biliyor ve tamamen db soyutlama katmanı atlamak, yönetmek bir uygulama yazmak için gidiyoruz. Nihayet geçmek için gereken bir durum içine almak ne zaman (eğer tür her yerde desteklenen mükemmel standart SQL, kullandığınız sürece ..), sık sık zaten çok fazla sorgu yeniden yazmak zorunda kalacak.

Üstlenmeden anahtar, soyutlama sadece şeyleri aşırı ve karmaşık olabilir.

Ben çerçeveler büyük bir hayranıyım değilim ama bazı avantajlar sunuyoruz. İşte, veritabanı bağlantısı için Zend Framework (Zend_Db'nin) kullanın. Ben çerçevesini kullanarak en az iki faydalarını görmek:

  1. Zend_Db'nin üstüne Zend_Cache kolay.
  2. Kolay (hazırlanan sorgu ve çalıştırmak için sorgu için zamanı içerir) FirePHP SQL sorguları oturum Zend günlük API'leri kullanmak için.

Bu iki özellik oldukça yararlı olabilir.