La respuesta esta leyendo la documentación, revisando el código y haciendo las pruebas respectivas.
La otra opción es que implementes algo mas a la medida y para eso te puede ayudar la documentación:
http://symfony.com/doc/current/cookb..._provider.html