Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-04-2010 14:59:17

Smon
Membre
Date d'inscription: 08-03-2010
Messages: 12

[Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Dans la section Zend_Cache du livre Zend Framework, Bien développer en PHP des Cahiers du programmeur, les auteurs proposent un script facilitant l'utilisation de Zend_Cache.

Il construisent donc leur propre librairie pour compléter Zend Framework. Jusque là pas de problème, le script a l'air plutôt sympa.

En revanche, dans leur script ils appellent Zfbook_Cache_Exception, or cette classe ne contient que ça :

Code:

<?php

/**
 * Exception personnalisée pour le cache
 *
 * @package zfbook
 * @subpackage cache
 */
class Zfbook_Cache_Exception extends Zfbook_Exception 
{}

Et Zfbook_Exception contient ça :

Code:

<?php
/**
 * Exception personnalisée racine des composants zfbook
 *
 * @package zfbook
 * @subpackage exception
 */
class Zfbook_Exception extends Exception 
{}

Du coup je ne comprends pas bien le truc ... Quelle est cette classe Exception ? Pourquoi faire des classe vides ?

Si quelqu'un pouvait me répondre ... Parce que là je suis un peu perdu ...

Merci d'avance.

Simon

Dernière modification par Smon (13-04-2010 12:50:48)

Hors ligne

 

#2 12-04-2010 15:21:50

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Bonjour,

Cela permet de structurer tes exceptions et de pouvoir tester le type d'exception que tu catch et donc de réagir en fonction.

Très souvent les classes d'exception n'implémentent rien de particulier, et le plus souvent seulement des constantes qui définissent les différents messages que le développeur pourra envoyer lorsqu'il lève une exception.

Quoi qu'il en soit, il est conseillé de respecter cette pratique et de toujours remonter une exception particulière pour chaque composant. Sauf parfois les types d'exceptions qui sont proposés nativement par PHP ou maintenant la SPL, qui peuvent être bien utiles.

Grâce à ce type de fonctionnement, il est bien plus facile de débugger et de logger correctement le déroulement des opérations smile


A+ benjamin.

Dernière modification par Delprog (12-04-2010 15:22:59)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#3 12-04-2010 17:35:03

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

S'un point de vue pratique ça permet d'avoir un code comme le suivant :

Code:

try {
  // un super code
}
catch (Zfbook_Cache_Exception $e) {
 // on traite l'exception liée à un problème dans le cache de Zfbook
}
catch (Zend_Exception $e) {
 // on traite l'exception liée à quelque chose dans le framework
}
...

Ca permet de traiter certains types d'erreur dans le catch et de laisser remonter les erreurs qu'on ne veut pas traiter ici (il peut y avoir un autre try/catch plus haut dans le code pour d'autre types d'exceptions).

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 12-04-2010 18:26:15

Smon
Membre
Date d'inscription: 08-03-2010
Messages: 12

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Oh, ok.

Mais ça fonctionne même si la classe est complètement vide comme dans le code que j'ai cité ci-dessus ? Il sait automatiquement faire la différence ? (désolé je suis un petit noob de l'objet et de Zend ...)

Et c'est quoi la classe Exception ? Parce qu'il me semble qu'il faudrait écrire Zend_Exception non ?

Hors ligne

 

#5 13-04-2010 09:43:23

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

C'est le principe de l'héritage :
PHP fournit une classe Exception
Zend_Exception hérite de Exception
Zfbook_Exception hérite (sans doute, je n'ai pas le livre) de Zend_Exception

Donc toutes ces classes peuvent utiliser les méthodes de la classe de base Exception.

Ensuite pour faire la différence, tu as instanceof (un mot clé php)

if ($e instanceof Zend_Exception) {...}

cette condition te permet de savoir si $e est une instance de Zend_Exception ou Zfbook_Exception (ça prend en compte l'héritage). On appelle ça le polymorphisme (en programmation objet) : si $e est une instance de Zfbook_Exception , c'est aussi une instance de Zend_Exception : ça a plusieurs "formes".

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#6 13-04-2010 11:22:42

Smon
Membre
Date d'inscription: 08-03-2010
Messages: 12

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Ben en fait Zfbook_Exception hérite directement de la classe Exception ...

Ça veut dire que je dois créer un fichier Zfbook_MaClasse_Exception pour chaque classe que je créé ? (si je veux faire du débogage)

Hors ligne

 

#7 13-04-2010 12:46:52

Smon
Membre
Date d'inscription: 08-03-2010
Messages: 12

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Bon, en tout cas merci à tous pour votre aide smile

Hors ligne

 

#8 13-04-2010 13:01:50

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Cache] Petite question sur Zend Framework Bien dével ...

Non, tu n'es pas du tout obligé, en général je n'ajoute des exceptions spécifiques que pour des points assez particuliers et à problème.
Sinon, j'utilise une classe d'exception générale que j'ai créé pour tout mon projet qui me permet de savoir que c'est une exception à moi et pas à quelqu'un d'autre qui vient d'être levée...

Bref sur un projet complexe, j'aurai créé 2 ou 3 classes d'exception en général...

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages