aide dans une class

Eléphanteau du PHP | 14 Messages

15 nov. 2012, 15:14

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;
}

Eléphanteau du PHP | 14 Messages

15 nov. 2012, 15:32

Je tiens à préciser que c'est la correction de l’exercice.

thebarbarius
Invité n'ayant pas de compte PHPfrance

15 nov. 2012, 15:34

Bah sa correspond a rien.

Eléphanteau du PHP | 14 Messages

15 nov. 2012, 15:41

Donc il y a une erreur dans la correction?

ViPHP
xTG
ViPHP | 7331 Messages

15 nov. 2012, 15:55

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 ?

Eléphanteau du PHP | 14 Messages

15 nov. 2012, 16:06

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;
}

Eléphanteau du PHP | 12 Messages

15 nov. 2012, 16:13

Db correspond à DataBase aussi à ma connaissance.

ViPHP
ViPHP | 2577 Messages

15 nov. 2012, 16:43

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.

Eléphanteau du PHP | 14 Messages

15 nov. 2012, 17:07

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?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 nov. 2012, 22:18

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).


@+
Il en faut peu pour être heureux ......