J'ai un BootableProvider silex pour vérifier certaines exigences sur chaque requête avant d'exécuter des appels à l'un de mes points d'extrémité. Tout fonctionne bien, sauf quand j'utilise $ app-> abort ('403', 'interdit pour une raison quelconque'); n'importe où dans la méthode boot(), la réponse renvoie toujours le code 200. Le message 'forbidden' est correctement affiché et l'exécution est interrompue comme prévu heureusement, mais ne pas avoir un code d'état significatif sur la réponse rend difficile/encombrant de traiter ces échecs réponses J'utilise silex 2.0.4. Cependant, si j'exécute $ app-> abort (...) depuis n'importe lequel de mes terminaux qui implémentent ControllerProviderInterface, dans le même thread de requête, les réponses ont les bons codes de réponse que je spécifie dans l'abandon, donc je Je pense que c'est un problème de timing.silex abort() sur BootableProviderInterface ignore le code fourni, la réponse a toujours 200
Tout conseil est grandement apprécié.
Exemple de code:
class BootProvider implements BootableProviderInterface {
function boot(Application $app) {
$app->abort(403, 'not allowed');
}
}
...
$app->register(new My\Api\BootProvider());
J'ai essayé les en-têtes passant à remplacer le statut en vain.
Merci!
En effet appeler ma méthode au démarrage générait juste une exception gérée non. Votre suggestion est parfaite pour mon usage. C'est exactement ce dont j'avais besoin, je l'apprécie vraiment! (ps., j'ai voté mais je n'ai pas assez de voix pour que ça se voit, merci!) –
juste accepter ma réponse) –
fait, désolé, la première fois ici ... Merci! –