(Temelde, kötü yönetim kararlarına bölünebilir hepsi) nedenlerle bir dizi için biz daha büyük olasılıkla bir kaç yıl boyunca PHP4 desteklemek gerekir, yani PHP5'ta geçmek veremiyoruz.
(Web uygulamaları bir sürü gibi) bizim uygulamaları bir çok övmek CRUD uygulamalar vardır, ve ben üzerinde biraz zaman harcamak arada ev projesini almak istiyorum çünkü, ben şu vea olacak bir küçük ORM gibi sınıf yazıyorum yana En temel sorguları için bir sarıcı olarak hizmet o PHP4 desteklemek zorunda olduğundan, PDO
söz konusu değildir (insert, update,. diğerleri arasında, silme, değiştirme), bu yüzden geri düşmek gerekir gibi dile özgü fonksiyonlar mysql_query
. Biz sürümlerin variery (Interbase sürümleri 4 ve üzeri, Firebird, MySQL), benim ORM / Sarıcı sınıf (emin değil ne onu aramak için), büyük büyümeye bağlı olarak, birkaç farklı sistemleri kullanılarak Çünkü.
Bu sorunu çözmek için, ben iki olası çözümler 'düşündüm:
- Kullanılan dil / RDBMS'yi tanımlayan bir
$database_system
değişkeni dayalı işlevleri içindeswitch
ifadeleri ile, bir büyük sınıf yazmak - Bir temel sınıf yazmak ve (özellikler aralarında pek bir farklılık varsa muhtemelen sürümü başına) RDBMS başına bir türetilmiş sınıf yazmak.
Şu vea ikinci seçenek doğru eğilerek değilim; benim görüşüme göre, bu desteklenen listeye yeni bir RDBMS'yi ekleyerek, özellikle bakım kolaylaştırır. Öte yvean, PHP fonksiyonları kendi ayarlanmıştır kullanarak her RDBMS ile, ben bir temel sınıfından orada olacağını ne kadar emin değilim. Bu akılda tutulması sınıf sonunda bu (eğer destekleniyorsa, ve muhtemelen işlemekle) kerede sorguları bir bütün liste, kuyruk yürütme gibi özellikleri destekleyecek.
Bu durum göz önüne alındığında, hangi yaklaşımın iyi olurdu? A veya B, ya da ben henüz dikkate almadı C muhtemelen var? Mevcut sınıfların bazı örnekler ne yazık ki ben geldim çoğu ORM adlı (PHP5'ta sadece) PDO
class güveniyor, mükemmel olurdu.