Bonjour,
je suis en train de me mettre sur la notion de singleton afin d'obtenir une seul connexion mais du coup j'ai quelques questions.
Actuellement moi j'ai un seul fichier qui fait une connexion au serveur et un pour les requêtes sql. Donc pour moi chaque utilisateur ne fait qu'une seul connexion au serveur donc je ne sais pas trop si la notion de singleton peu m'être utile...
Donc j'ai essayé de faire un fichier avec la connexion au serveur + les requêtes sql dans le même fichier afin de m'assurer de ne faire qu'une seule connexion afin de limiter le travail du serveur.
Voici ce que j'ai essayer de faire :
Code PHP :
<?PHP
class MysqlConnection {
/**
* Propriété privée stockant une instance de la classe si MysqlConnection::getInstance() est appelé
* @var MysqlConnection
*/
private static $_instance = null;
private function __construct () {
//echo 'je suis une instance de MysqlConnection';
self::$instance = mysql_connect(SERVEUR, LOGIN, PASS) OR DIE (header("Location: ".ABS."/erreur.php?erreur=connexion base"));
//mysql_connect("cl2-sql4", "tyty14", "thetytyadmi") OR DIE (header("Location: ".ABS."/erreur.php?erreur=connexion base"));
mysql_select_db(BASE, self::$instance)OR DIE (header("Location: ".ABS."/erreur.php?erreur=base"));
mysql_query("SET NAMES 'utf8'");
}
/**
* Méthode implémentant le design pattern MysqlConnectionton
* @return MysqlConnection
*/
public static function getInstance() {
if(is_null(self::$_instance)) {
self::$_instance = new MysqlConnection();
}
return self::$_instance;
}
/**
* Méthode publique quelconque
*/
public function doSomething () {
echo 'requete';
}
public function query($query, $idRequete = 0) {
$this->sql_results[$idRequete] = mysql_query($query);
return (bool)$this->sql_results[$idRequete];
}
}
$o = MysqlConnection::getInstance ();
$o ->doSomething ();
?>
Par contre j'obtiens : Fatal error: Access to undeclared static property: MysqlConnection::$instance in ..... on line 13
Moralité de l'histoire voici mes questions :
Est-ce que le principe de créer un singleton avec la connexion serveur et les requêtes sql est judicieux. Car je trouve que ça permet de mieux organiser mais...
est-ce que le fait de faire une seule fois la connexion au serveur (à travers un seul fichier qui est appelé une fois par page) est suffisant.
Voilà merci à la personne qui pourra m'apporter ces quelques explicationns. Car je me demande toujours comment je peux faire pour qu'il y ai le moins de connexion possible et pour utiliser au mieux la POO car je vais être amener à utiliser ces modules que je développe : module d'authentification, formulaire de connexion, etc.
Voilà donc merci.