Silex incluye un atajo útil llamado json()
para aquellos controladores que solamente devuelven datos JSON. Pasa a este método los datos que quieras enviar como respuesta y el se encarga automáticamente de añadir las cabeceras adecuadas para una respuesta de tipo JSON:
$app->get('/users/{id}', function ($id) use ($app) {
$user = getUser($id);
if (!$user) {
$error = array('message' => 'No se ha encontrado al usuario.');
return $app->json($error, 404);
}
return $app->json($user);
});