Je suis toujours à la recherche d'un moyen de l'exprimer correctement (je ne suis pas un locuteur natif ...).Appel d'une classe singleton à une fonction qui à son tour appelle la méthode de cette classe
Je cette classe SQL
qui met en œuvre le modèle singleton (pour des raisons évidentes) et j'ai aussi cette fonction, checkUsr()
, qui interroge la base de données en utilisant l'une des méthodes de SQL
. Tout fonctionne bien tant que je n'appelle pas checkUsr()
de la classe SQL
. Quand je le fais, les scripts se terminent et une page blanche est affichée - aucune erreur n'est renvoyée, aucune exception n'est levée ... Que se passe-t-il? Et comment puis-je contourner ce problème?
EDIT:
un code ici:
class SQL
{
public static function singleton()
{
static $instance;
if(!isset($instance))
$instance = new SQL;
return $instance;
}
public function someOtherFun()
{
checkUsr();
}
public function tryLoginAuthor($login, $sha1)
{
// SQL query
}
}
function checkUsr()
{
if (!isset($_SESSION['login']) || !isset($_SESSION['sha1']))
throw new Exception('Not logged in', 1);
$SQL = SQL::singleton();
$res = $SQL->tryLoginAuthor($_SESSION['login'], $_SESSION['sha1']);
if (!isset($res[0]))
throw new Exception('Not logged in', 1);
}
Le problème se produit, quand je l'appelle checkUsr
à partir de la classe SQL. Il ne se produit pas, cependant, lorsqu'il est appelé à partir d'une autre classe ...
Un code serait génial. Appelez-vous checkUsr() en utilisant $ this-> checkUsr()? – tplaner