Page 1 sur 1
aide dans une class
Posté : 15 nov. 2012, 15:14
par lotus1
Bonjour,
je fais un exercice ou il faut créé une class Manager ayant comme attribut la connexion PDO et j'aimerai savoir a quoi correspond Db :
class Manager{
private $base;
public function __construct($base)
{
$this->setDb($base);
}
public function setDb(PDO $base)
{
$this->base = $base;
}
Re: aide dans une class
Posté : 15 nov. 2012, 15:32
par lotus1
Je tiens à préciser que c'est la correction de l’exercice.
Re: aide dans une class
Posté : 15 nov. 2012, 15:34
par thebarbarius
Bah sa correspond a rien.
Re: aide dans une class
Posté : 15 nov. 2012, 15:41
par lotus1
Donc il y a une erreur dans la correction?
Re: aide dans une class
Posté : 15 nov. 2012, 15:55
par xTG
Db comme raccourci de DataBase, autrement dit Base de Données en français.
Je suis pas fan de la convention de nommage de ton prof par contre...
$base est associé à un setter setDb (comprendre setDatabase), pourquoi renommer un chat un chien en gros ?
Re: aide dans une class
Posté : 15 nov. 2012, 16:06
par lotus1
Sachant que :
$base = new PDO('mysql:host=localhost;dbname=test','root','');
n'est-il pas bizarre d'écrire :
public function setDb(PDO $base)
{
$this->base = $base;
}
Re: aide dans une class
Posté : 15 nov. 2012, 16:13
par Alan581
Db correspond à DataBase aussi à ma connaissance.
Re: aide dans une class
Posté : 15 nov. 2012, 16:43
par Mazarini
Pour faire simple, il faudrait remplacer base par Db ou Db par base dans le code pour être un peu plus cohérent.
Après le choix de Db ou base ou autre chose est une affaire de gout, personnellement j'aurai plutôt utilisé connexion ou cnx puisque le paramètre/la propriété est une connexion PDO.
Re: aide dans une class
Posté : 15 nov. 2012, 17:07
par lotus1
J'aurai fait ça :
class Manager{
private $base;
public function __construct($base)
{
$this->setBase($base);
}
public function setBase($base)
{
$this->base = $base;
}
Est-ce que c'est bon?
Re: aide dans une class
Posté : 15 nov. 2012, 22:18
par moogli
Est-ce que c'est bon?
oui cela peux l'être, rajout le "PDO" dans la signature des méthodes afin de t'éviter un test.
Il s'agit de typage, cela te permet d'être certain que seul un objet PDO peux être passé (ou null) tu n'a pas a vérifier qu'il s'agit d'un objet PDO (pour éviter une erreur si tu passe autre chose que d'un objet PDO).
@+