Que tal
Carxl,
Puedes utilizar el patrón
Query Object, pero no es algo sencillo de implementar, hay muchos factores a tener en cuenta, si necesitas tanta flexibilidad deberías utilizar Doctrine(DQL) o Propel(Criteria).
Y hay algo que no entiendo muy bien, si lo que esta en el link te sirve, porque no lo utilizas ?
Saludos.