Bonjour,
Voila je souhaiterai désactiver le message de slim lors d'une erreur 500 particulière (erreur volontaire).
J'effectue un test de connexion à une base de données via PDO comme ceci :
try{
$dbh = new \PDO($dsn, $user, $password);
}catch(PDOException $e){
$this->alert('Impossible de se connecter à la base de données', 'danger');
return $this->redirect($response, 'install', 400);
}
Si la connexion fonctionne, alors le controlleur continue, mais si la connexion echoue j'ai cette erreur venant de slim, que je ne souhaite pas avoir car je veux gérer cette erreur :
Slim Application Error
A website error has occurred. Sorry for the temporary inconvenience.
Alors j'ai trouver la solution, j'ai du faire comme ceci dans mon controlleur :
// En cas d'erreur de connexion
$c = $this->container['container'];
$c['errorHandler'] = function ($c) {
return function ($request, $response, $methods) use ($c) {
$this->alert('Impossible de se connecter à la base de données', 'danger');
return $this->redirect($response, 'install', 400);
};
};
$dbh = new \PDO($dsn, $user, $password);
par contre j'ai du ajouter cette ligne pour pouvoir avoir accès au container lui même dans mon controlleur :
$container['container'] = $app->getContainer();
J'avais oublié de préciser, mon projet slim est basé sur celui de la vidéo de grafikart :)