dónde encontrar interfaces de “plantilla”?

Me pregunto dónde se pueden encontrar interfaces de plantilla.

p.ej. Estoy creando estas clases que implementa iLog:

DatabaseLog ScreenLog FileLog 

Me pregunto qué métodos debe tener una clase típica de Log.

¿Existe un conjunto de interfaces que podría implementar / aprender en lugar de reinventar la rueda y pensar en los nombres de los métodos?

p.ej. Interfaces:

  iLog iDatabase iErrorMessage etc. 

Gracias

PHP define las siguientes interfaces ( debería, pero puede no estar completo ):

  • Traversable – La interfaz de Traversable
  • Iterador – La interfaz del iterador
  • IteratorAggregate – La interfaz IteratorAggregate
  • ArrayAccess – La interfaz ArrayAccess
  • Serializable – La interfaz Serializable
  • Contable: la interfaz contable
  • OuterIterator – La interfaz OuterIterator
  • RecursiveIterator – La interfaz RecursiveIterator
  • SeekableIterator – La interfaz SeekableIterator
  • SplObserver – La interfaz SplObserver
  • SplSubject – La interfaz SplSubject

Ver

En cuanto a su Interfaz Logger, yo diría que debería tener un log($message, level) método log($message, level) y nada más.