J'ai un problème d'œuf de poule. Je voudrais aussi implémenter un système PHP de manière OOP, dans lequel deux classes joueraient des rôles importants: Database et Log. Mon idée était de construire la connexion par la classe Database, qui aurait des méthodes publiques, par exemple. runQuery (sUpdateQuery), doInsert (sInsert), etc. La classe Log écrirait les logs par des méthodes communes, tout comme logMessage (message), logDatabaseQuery (sQuery) TO THE DATABASE. Le problème vient maintenant.Problème de poulet à l'œuf OOP
1: Je l'intérieur des méthodes de la classe de la base de données comme pour pouvoir utiliser la logDatabaseQuery de classe Log (sQuery)
2: Ce ne serait pas encore un grand défi si je ne voudrais pas utiliser le Méthode doInsert (sInsert) de la classe de base de données dans la méthode logDatabaseQuery. Je voudrais le garder simple - et juste utiliser une instance de l'objet de connexion de base de données, et du loggeras bien, si c'est possible.
Pour beaucoup de gens, le modèle Singleton serait la première idée à choisir, mais je voudrais certainement utiliser une solution différente.
Donc, il y aurait deux classes qui utiliserait chaque-autres méthodes:
Base de données doInsert logDatabaseQuery
Connexion logDatabaseQuery doInsert
Je voudrais garder les méthodes Log séparément (dans la classe Log), puisque plus tard, il aurait d'autres méthodes pour se connecter non seulement à la base de données, mais aussi aux fichiers ou aux e-mails.
Toutes les idées, comment cela devrait/pourrait être fait de la manière la plus agréable, OOP friendly?
Je pensais à une classe abstraite parent commun, ou sur l'utilisation des interfaces aussi bien, mais finalement ne pouvait pas comprendre la bonne façon :(
Ce que je voudrais savoir est une suggestion pour une hiérarchie de classes correcte
Les gars, je vous remercie pour toutes vos réponses. Maintenant je peux voir clairement - ce dont j'avais un peu peur, que mon idée était fausse. Maintenant, je peux comprendre, que je dois séparer l'accès à la base de données au moins en deux classes. – simply4it