GESTION FTP (CLASSE)

genetApt151 Messages postés 30 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 2 avril 2011 - 5 déc. 2010 à 11:48
DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 - 9 déc. 2010 à 10:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52559-gestion-ftp-classe

DiGhan Messages postés 239 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 3 juin 2010 1
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és 30 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 2 avril 2011 1
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.
Rejoignez-nous