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.