Ben bir tavuk-yumurta problemi var. Veritabanı ve Log: ben, bir OOP şekilde PHP bir sistem uygulamak çok hangi iki sınıfları önemli rol oynayacağını istiyorum. Benim fikrim kamu yöntemleri örneğin olurdu Veritabanı sınıfı tarafından bağlantı kurmak oldu. runQuery (sUpdateQuery), doInsert (sInsert), vb Log sınıfı sadece VERİTABANINA LogMessage (mesaj), logDatabaseQuery (sQuery) gibi yaygın yöntemlerle günlüklerini yazmak istiyorum. Sorun şimdi geliyor.
1: Veri tabanlarının sınıfının yöntemleri içinde ben Log sınıfının logDatabaseQuery (sQuery) kullanmak mümkün istiyorum
2: Ben logDatabaseQuery yöntemi içinde Veritabanı sınıfının doInsert (sInsert) yöntemini kullanmak istemez ki eğer bu hala büyük bir sorun olmaz.
Ben basit tutmak istiyorum - ve eğer mümkünse sadece, iyi veritabanı bağlantı nesnesinin bir örneğini kullanın ve loggeras gelen.
Birçok kişi için Singleton modeli seçmek için ilk fikir olabilir, ama kesinlikle farklı bir çözüm kullanmak istiyorum.
Yani her-Diğer yöntemlerini kullanmak istiyorsunuz iki sınıf olacaktır:
Database doInsert logDatabaseQuery
Log logDatabaseQuery doInsert
Daha sonra bunun üzerinde de sadece veritabanı, ancak dosya veya e-postalara giriş için başka yöntemler olurdu çünkü, (Giriş sınıfı) ayrı ayrı Log yöntemleri tutmak istiyorum.
Herhangi bir fikir, / OOP dostu bir şekilde, en güzel, bir de bu nasıl yapılabilir ki?
Ben ortak bir ebeveyn soyut sınıf düşünmeye, ya da yanı sıra arayüzleri kullanarak hakkında, ama sonunda doğru yolu çözemedim oldu: (
Ne bilmek istiyorum doğru bir sınıf hiyerarşisi için bir öneri