Puedes definir tantos middlewares como necesites en tu aplicación. Si existe más de uno, se ejecutan en el mismo orden en el que han sido definidos en el código de la aplicación.
Para controlar de forma explícita la prioridad de los middlewares, pasa un número entero como segundo parámetro del método que registra los middlewares:
$app->before(function (Request $request) {
// ...
}, 32);
Silex define dos constantes especiales para registar un evento lo antes posible (EARLY_EVENT
) y lo más tarde posible (LATE_EVENT
):
$app->before(function (Request $request) {
// ...
}, Application::EARLY_EVENT);
$app->before(function (Request $request) {
// ...
}, Application::LATE_EVENT);