Registrar consultas de Propel en una aplicaci贸n Silex

Para agregar el registro de consultas SQL generadas por Propel (v1.6.9) a una aplicaci贸n Silex , los middlewares de Silex una vez m谩s son bastante 煤tiles. El siguiente fragmento asume que la aplicaci贸n usa el MonologServiceProvider incorporado para el registro.

Antes de Middleware para habilitar la depuraci贸n

$app->before(function (Request $request) use($app) {
if ($app['debug']) {
$con
= Propel::getConnection();
$con
->useDebug(true);
}
});

Despu茅s de Middleware para hacer el registro real

Tambi茅n registra la ruta llamada que desencaden贸 la consulta o consultas.

$app->after(function (Request $request) use($app) {
if ($app['debug']) {
$con
= Propel::getConnection();
$app
['monolog']->addDebug(
'propel-query',
array
('route' => $request->getPathInfo(),
'sql' => $con->getLastExecutedQuery())
);
}
});

Una entrada de registro ejemplar

[2013-07-12 14:13:12] example-app.DEBUG: propel-query {"route":"/navigation/page-assignment","sql":"SELECT page_pool.autor, page_pool.id, page_pool.node_id, page_pool.metafile, page_pool.rubriken_id, page_pool.template, page_pool.timestamp, page_pool.url, page_pool.title FROM `page_pool` ORDER BY page_pool.title ASC LIMIT 10"} []

Doh!

Esta soluci贸n solo registra la 煤ltima consulta desencadenada por una ruta; y, por lo tanto, puede que no sea tan 煤til para lotes de consultas.