En muchos proyectos que parten de cero, se pueden utilizar alternativas al uso de procedures.
Pero en ocasiones, nos encontramos con modelos de datos en producción que son usados por aplicaciones cliente servidor, web que no podemos modificar lo que nos lleva a utilizar los recursos disponibles y adaptarnos lo mejor posible a la arquitectura y estructura que tiene el cliente.

Una sencilla forma de ejecutar un procedimiento almacenado con symfony y orm doctrine sería esta:

    $name_proc = 'Nombre_Procedimiento';
    $dsn = 'mssql:dbname=DatabaseName;host=Servidor';
    $user = 'guest';
    $password = '';

    try{
	    $dbh = new PDO($dsn, $user, $password);
	    $conn=Doctrine_Manager::getInstance()->getCurrentConnection() ;
	    $conn->prepare($name_proc);
            $q= $conn->fetchAll($name_proc,array(10));
     }
     catch (PDOException $e){
         throw new sfDatabaseException(sprintf('PDOException was thrown when trying to manipulate session data. Message: %s', $e->getMessage()));
      }

Este ejemplo ejecuta un procedimiento almacenado sobre Sql Server, con cambiar el dsn se podría ejecutar en MySql 5+

Espero que haya sido útil :-)