DiGhan
Messages postés239Date d'inscriptionsamedi 21 février 2004StatutMembreDernière intervention 3 juin 20101 9 déc. 2010 à 10:34
Je rejoins le commentaire de genetAPT152 (pas très simple ton pseudo).
J'irai même plus loin en supprimant tous les tests "trim(!empty($new))" puisque dans tous les cas la connexion va échouer. C'est une vérification qui doit se faire en amont.
L'utilisation des exceptions est primordiale dans ta classe puisqu'il y a des "evenements" critiques (comme le statut de la connexion). Actuellement, le développeur n'a aucun retour mais surtout aucun message pour l'avertir. De plus comme l'a dit "genet...", les méthodes get() , put() ne doivent plus s'exécuter si la connexion a échoué.
Même si elles ne sont pas standardisées, tu respectes les conventions zend (plutôt bien pensées) et le code est propre.
genetApt151
Messages postés30Date d'inscriptionlundi 7 mai 2007StatutMembreDernière intervention 2 avril 20111 5 déc. 2010 à 11:48
Salut,
C'est vrai qu'en objet, c'est plus agréable à utiliser, mais j'ai remarqué quelques problèmes
1- Tester la validité d'une variable dans un setter est bonne chose mais il y a des erreurs.
Tout d'abord faire un if (trim(!empty($new))) n'a aucun sens, faire un trim sur un booléan ??si tu veux tester que la variable en entrée n'est pas vide il faut utilisé : if(!trim($new)) ou if(trim($new) null) ou if(trim($x) ''). Ensuite pour tester un entier (ex avec : setTimeout())
utiliser is_numeric suffit, pas besoin de tester que la variable est vide.
2- Utiliser des exceptions est une bonne pratique mais il faut alors crée une classe d'exception spécifique à ta classe au lieu du type générique Exception. Tu peux aussi utiliser les exceptions définie par la SPL. Il faut également spécifier un code d'erreur quand tu lèves une exception.
3- si tu utilises les exceptions pour gérer les erreurs, il faut le faire jusqu'au bout,
par exemple qu'est ce qui se passe si la connexion échoue et $this->_conn = false ?? Il n’y a aucune erreur et toutes les fonctions tel pwd, mkdir … tourne dans le vide puise que tu fais if ($this->_conn != false). Test si la connexion a réussi dans la méthode _connection() et renvoie une exception si la elle a échouée et enlève tous ces if ($this->_conn != false) inutiles.
4- Le nom de ta classe : FTP est trop commun et risque d'entrainer des confits, soit tu lui donnes a nom plus sophistiquée ou tu utilises les namespaces.
9 déc. 2010 à 10:34
J'irai même plus loin en supprimant tous les tests "trim(!empty($new))" puisque dans tous les cas la connexion va échouer. C'est une vérification qui doit se faire en amont.
L'utilisation des exceptions est primordiale dans ta classe puisqu'il y a des "evenements" critiques (comme le statut de la connexion). Actuellement, le développeur n'a aucun retour mais surtout aucun message pour l'avertir. De plus comme l'a dit "genet...", les méthodes get() , put() ne doivent plus s'exécuter si la connexion a échoué.
Même si elles ne sont pas standardisées, tu respectes les conventions zend (plutôt bien pensées) et le code est propre.
5 déc. 2010 à 11:48
C'est vrai qu'en objet, c'est plus agréable à utiliser, mais j'ai remarqué quelques problèmes
1- Tester la validité d'une variable dans un setter est bonne chose mais il y a des erreurs.
Tout d'abord faire un if (trim(!empty($new))) n'a aucun sens, faire un trim sur un booléan ??si tu veux tester que la variable en entrée n'est pas vide il faut utilisé : if(!trim($new)) ou if(trim($new) null) ou if(trim($x) ''). Ensuite pour tester un entier (ex avec : setTimeout())
utiliser is_numeric suffit, pas besoin de tester que la variable est vide.
2- Utiliser des exceptions est une bonne pratique mais il faut alors crée une classe d'exception spécifique à ta classe au lieu du type générique Exception. Tu peux aussi utiliser les exceptions définie par la SPL. Il faut également spécifier un code d'erreur quand tu lèves une exception.
3- si tu utilises les exceptions pour gérer les erreurs, il faut le faire jusqu'au bout,
par exemple qu'est ce qui se passe si la connexion échoue et $this->_conn = false ?? Il n’y a aucune erreur et toutes les fonctions tel pwd, mkdir … tourne dans le vide puise que tu fais if ($this->_conn != false). Test si la connexion a réussi dans la méthode _connection() et renvoie une exception si la elle a échouée et enlève tous ces if ($this->_conn != false) inutiles.
4- Le nom de ta classe : FTP est trop commun et risque d'entrainer des confits, soit tu lui donnes a nom plus sophistiquée ou tu utilises les namespaces.