Bonjour,
je voudrai savoir si il est possible de faire une classe de la classe PDO
Je pense que oui, elle n'est pas défine comme "final".
mettre en place un compteur de requête entre autre
Une première remarque, la notion de "query" avec PDO n'est pas la même que avec les méthodes classiques (mysql_query, mysqli_query)
Elle ne concerne que les requêtes qui retournent un résultat (données) comme "SELECT, EXPLAIN, SHOW et DESC" (j'en oublie PTT mais la notion est là). Ce qui veux dire que celles qui
executent une action dans la base "INSERT, DELETE, UPDATE,..." ne sont pas concernées, c'est la méthode "execute()".
sauf si cette fonctionnalité éxiste déja dans la classe PDO
Pas à ma connaissance
si tu fais du PHP5
Il est bien obligé, PDO n'existe que depuis cette version.
tes méthodes doivent avoir un indicateur de niveau d'accès
Je dirais comme toi pour la bonne structuration et compréhension du code (écriture propre) mais la bonté de PHP fait que s'il n'y-a pas de de niveau spécifié c'est "public" qui est pris par défaut (je l'ilustre plus bas).
je ne saurais trop te recommander de commenter soigneusement ton code systématiquement.
$vrai = 1; while(true) $vrai++;
Concernant ta class ça dépend de ce que tu attends.
Si dans le même script tu utilises 2 (ou +) objets PDO avec un code comme celui-ci
<?php
class MaClass{
private $a = 0;
// Les attributs de visibilité pour les méthodes
// sont volontairement absents
function __construct(){
}
function add($value){
$this->a += $value;
}
function getValue(){
return $this->a;
}
}
$maClass = new MaClass();
$maClass->add(5);
echo $maClass->getValue() . '<br />';
$maClass2 = new MaClass();
$maClass2->add(3);
echo $maClass2->getValue() . '<br />';
?>
Tu obtiendras ce résultat
5
3
les "query" ne s'additionneront pas.
Par contre avec celui-ci
<?php
class MaClass{
static $a = 0;
// Les attributs de visibilité pour les méthodes
// sont volontairement absents
function __construct(){
}
function add($value){
self::$a += $value;
}
function getValue(){
return self::$a;
}
}
$maClass = new MaClass();
$maClass->add(5);
echo $maClass->getValue() . '<br />';
$maClass2 = new MaClass();
$maClass2->add(3);
echo $maClass2->getValue() . '<br />';
?>
Tu obtiendras
5
8
Là, la première valeur est conservée.