Redite et simplification

Eléphant du PHP | 226 Messages

29 mars 2011, 14:39

Bonjour/ bonsoir,

Dans mes méthodes, je travaille avec l'objet PDO, avec lequel je gère les exceptions. La fin de méthode est à peu près la même pour toutes :
try {
                if ($select->execute()) {
                    $this->data = $select->fetch(); //--> ou une boucle while(){
                    $select->closeCursor();
                } else {
                    Generalites::$message = 'message';
                }
            } catch (PDOException $e) {
                header('Location:'.Generalites::$erreurPage);
            }
}
D'où ma question : est-il judicieux et possible de transformer ce code en une méthode que je pourrai réutiliser à chaque fois, plutôt que d'avoir à retaper systématiquement ce même code...
merci,
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

ViPHP
xTG
ViPHP | 7331 Messages

29 mars 2011, 15:27

A la vue du $this tu travailles à l'intérieur d'un objet.
Cet objet a-t-il tant de fois ce code écrit ?
Par contre si ce code dont tu parles est le même utilisé dans plusieurs objets ce n'est plus la même problématique.
Il serait alors plus viable de faire une class héritant de la class PDO et intégrant ce comportement.

Eléphant du PHP | 226 Messages

29 mars 2011, 15:42

Je dirai qu'il y a des deux (Mais je n'utilise $this->data qu’une fois ou deux maximum)
En fait, j'ai trois objets et le plus important d'entre eux contient six méthodes... C’est effectivement presque autant de fois que je réécris la même structure de code...
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

ViPHP
xTG
ViPHP | 7331 Messages

29 mars 2011, 16:14

Créés donc toi une class héritant de PDO dans ce cas et intégrant ce code. :)

PS: il serait bon de mettre un exit() derrière le header() afin que l'instruction suivante ne puisse dans aucun cas être exécutée.

Eléphant du PHP | 226 Messages

30 mars 2011, 10:13

Héritage depuis PDO... On va étudier ça... (' suis débutant en POO)
Merci pour le 'exit'.
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.