Estoy experimentando lo que creo que es un problema de dependencia circular con mi aplicación PHP. Por favor, avíseme si esto es incorrecto. Aquí está la situación:Posible problema de dependencia circular con la aplicación PHP
Dos clases, LogManager y DBSession.
DBSession se utiliza para interactuar con la base de datos, y LogManager se usa para iniciar sesión en los archivos. Ambos son ampliamente utilizados en mi aplicación. Cuando crea una instancia de DBSession, debe darle una instancia de LogManager a través de un parámetro de constructor. Esto porque DBSession algunas veces registrará información en un archivo, y usará la instancia LogManager para hacer esto.
Ahora, quería extender LogManager para que también pudiera iniciar sesión en una tabla de base de datos, en lugar de en un archivo de texto. Naturalmente, mi preferencia es reutilizar las clases existentes, pero pronto me di cuenta de que esto producía una situación interesante.
DBSession ya requiere una instancia de LogManager para la construcción. Si deseo volver a utilizar la clase DBSession en LogManager, ahora requerirá una instancia de DBSession. ¿Cómo puedo satisfacer ambas demandas? Claramente, algo debe estar mal con mi enfoque.
¿Cómo Sugeriría que solucione esto?
Gracias de antemano, chicos.
$ logManager = new LogManager(); $ dbSession = new DbSession ($ logManager); $ logManager-> add (new FileLog ($ filename)); $ logManager-> add (nuevo DBLog ($ dbSession)); – micahwittman
No es consistente en los nombres de clase .. –
@Owen: ¡gracias por editar! –