Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Avis sur ma classe FTP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Avis sur ma classe FTP

n°1803101
Metabolicm​an
Posté le 22-10-2008 à 11:26:44  profilanswer
 

Bonjour à tous,
 
Bon, je n'ai aucun problème à signaler dans un de mes codes mais je veux juste votre avis.
Voilà je me lance dans la POO avec php et j'aimerai savoir si la classe FTP que je viens  
de créer (elle fonctionne) codée correctement.
 
Je vous rassure, elle n'est pas finie il y a encore des méthodes incomplètes, maintenant place au code:
 

Code :
  1. class FTP
  2. {
  3. //CONCERNE LE FTP
  4. private $ftp;
  5. private $login;
  6. private $password;
  7. private $path_serveur_upload;
  8. private $path_serveur_racine;
  9. private $path_serveur_courant;
  10. //CONCERNE L'UTILISATEUR
  11. private $nom_fichier;
  12. private $type_fichier;
  13. private $size_fichier;
  14. private $tmp_fichier;
  15. function __construct()
  16. {
  17.  $this->ftp="";
  18.  $this->login="";
  19.  $this->password="";
  20.  $this->path_serveur_upload="";
  21.  $this->path_serveur_racine="";
  22.  $this->path_serveur_courant=$this->path_serveur_racine;
  23.  $this->path_courant="";
  24.  $this->nom_fichier="";
  25.  $this->type_fichier="";
  26.  $this->size_fichier="";
  27.  $this->tmp_fichier="";
  28. }
  29. function __destruct(){}
  30. //ACCESSEURS
  31. public function GET_ftp()
  32. {
  33.  return $this->ftp;
  34. }
  35. public function GET_login()
  36. {
  37.  return $this->login;
  38. }
  39. public function GET_password()
  40. {
  41.  return $this->password;
  42. }
  43. public function GET_path_serveur_upload()
  44. {
  45.  return $this->path_serveur_upload;
  46. }
  47. public function GET_path_serveur_racine()
  48. {
  49.  return $this->path_serveur_racine;
  50. }
  51. public function GET_path_serveur_courant()
  52. {
  53.  return $this->path_serveur_courant;
  54. }
  55. public function GET_nom_fichier()
  56. {
  57.  return $this->nom_fichier;
  58. }
  59. public function GET_type_fichier()
  60. {
  61.  return $this->type_fichier;
  62. }
  63. public function GET_size_fichier()
  64. {
  65.  return $this->size_fichier;
  66. }
  67. public function GET_tmp_fichier()
  68. {
  69.  return $this->tmp_fichier;
  70. }
  71. //MUTATEURS
  72. public function SET_ftp($val)
  73. {
  74.  $this->ftp=$val;
  75. }
  76. public function SET_login($val)
  77. {
  78.  $this->login=$val;
  79. }
  80. public function SET_password($val)
  81. {
  82.  $this->password=$val;
  83. }
  84. public function SET_path_serveur_upload($val)
  85. {
  86.  $this->path_serveur_upload=$val;
  87. }
  88. public function SET_path_serveur_racine($val)
  89. {
  90.  $this->path_serveur_racine=$val;
  91.  $this->path_serveur_courant=$val;
  92. }
  93. public function SET_path_serveur_courant($val)
  94. {
  95.  $this->path_serveur_courant=$val;
  96. }
  97. public function SET_nom_fichier($val)
  98. {
  99.  $this->nom_fichier=$val;
  100. }
  101. public function SET_type_fichier($val)
  102. {
  103.  $this->type_fichier=$val;
  104. }
  105. public function SET_size_fichier($val)
  106. {
  107.  $this->size_fichier=$val;
  108. }
  109. public function SET_tmp_fichier($val)
  110. {
  111.  $this->tmp_fichier=$val;
  112. }
  113. //AUTRES METHODES
  114. protected function Connect()
  115. {
  116.  $conn_id=ftp_connect($this->ftp);
  117.  if (@ftp_login($conn_id, $this->login, $this->password))
  118.  {
  119.   return $conn_id;
  120.  }
  121.  else
  122.  {
  123.   return false;
  124.  }
  125. }
  126. protected function Close($ftp_stream)
  127. {
  128.  ftp_close($ftp_stream);
  129. }
  130. public function FileUpload()
  131. {
  132.  $ftp_stream=$this->Connect();
  133.  if(!$ftp_stream)
  134.  {
  135.   echo "La connexion a échouée";
  136.  }
  137.  else
  138.  {
  139.   ftp_put($ftp_stream,$this->path_serveur_upload,$this->tmp_fichier.$this->nom_fichier,FTP_ASCII);
  140.   $this->Close($ftp_stream);
  141.  }
  142. }
  143. public function FileDownload()
  144. {
  145. }
  146. public function ListRep()
  147. {
  148.  $ftp_stream=$this->Connect();
  149.  if(!$ftp_stream)
  150.  {
  151.   echo "La connexion a échouée";
  152.  }
  153.  else
  154.  {
  155.   $tab=ftp_nlist($ftp_stream,$this->GET_path_serveur_courant());
  156.   if(!$tab)
  157.   {
  158.    echo "Il n'y a aucun fichier";
  159.   }
  160.   else
  161.   {
  162.    foreach($tab as $value)
  163.    {
  164.     echo $value."<br />";
  165.    }
  166.    $this->Close($ftp_stream);
  167.   }
  168.  }
  169. }
  170. public function ParentRep()
  171. {
  172.  $path=$this->path_serveur_courant;
  173.  $path=explode("/",$path);
  174.  $nb_case=count($path)-2;
  175.  for($i=0;$i<$nb_case;$i++)
  176.  {
  177.   $npath.=$path[$i]."/";
  178.  }
  179.  $this->path_serveur_courant=$npath;
  180.  $this->ListRep();
  181. }
  182. public function DeleteFile($file)
  183. {
  184.  //ftp_delete
  185. }
  186. public function CreateDir($dirname)
  187. {
  188.  $ftp_stream=$this->Connect();
  189.  if(!$ftp_stream)
  190.  {
  191.   echo "La connexion a &eacute;chou&eacute;e";
  192.  }
  193.  else
  194.  {
  195.   error_reporting(0);
  196.   if(!ftp_mkdir($ftp_stream,$this->path_serveur_courant.$dirname))
  197.   {
  198.    echo "Le r&eacute;pertoire ".$dirname." existe d&eacute;j&agrave;<br />";
  199.   }
  200.   $this->Close($ftp_stream);
  201.  }
  202.  $this->ListRep();
  203. }
  204. public function RenameFile()
  205. {
  206.  //ftp_rename
  207. }
  208. public function DeleteDir($dirname)
  209. {
  210.  $ftp_stream=$this->Connect();
  211.  if(!$ftp_stream)
  212.  {
  213.   echo "La connexion a &eacute;chou&eacute;e";
  214.  }
  215.  else
  216.  {
  217.   ftp_rmdir($ftp_stream,$this->path_serveur_courant.$dirname);
  218.   $this->Close($ftp_stream);
  219.  }
  220.  $this->ListRep();
  221. }
  222. }


 
PS: je sais que tout les accesseurs et mutateurs ne sont pas forcément nécessaires ;)

mood
Publicité
Posté le 22-10-2008 à 11:26:44  profilanswer
 

n°1803118
yellu
Posté le 22-10-2008 à 11:50:34  profilanswer
 

J'aime pas trop ta "convention" de nommage, des _ pour les getters et setters et une synthaxe java pour le reste.
 
Je crois que les premières lettres des méthodes ne prennent pas de majuscule en Java.
 
Sinon peut être pourrais-tu donner un peu d'intelligence au constructeur et inclure la livraison de paramètres au niveau de l'instanciation.

n°1803134
Metabolicm​an
Posté le 22-10-2008 à 12:16:04  profilanswer
 

Ouais c'est prévu d'affecter directement les valeurs au constructeur pour une économie de ligne dans le programme principal

n°1803138
FlorentG
Posté le 22-10-2008 à 12:19:53  profilanswer
 

C'est pas qu'une économie de ligne, c'est surtout qu'un constructeur est censé livrer un objet exploitable :)
 
Pour les erreurs, utilise peut-être des exceptions au lieu de simples echo qui ne permettent pas une gestion correcte.

n°1803144
masklinn
í dag viðrar vel til loftárása
Posté le 22-10-2008 à 12:31:11  profilanswer
 

FlorentG a écrit :

C'est pas qu'une économie de ligne, c'est surtout qu'un constructeur est censé livrer un objet exploitable :)
 
Pour les erreurs, utilise peut-être des exceptions au lieu de simples echo qui ne permettent pas une gestion correcte.


+1, et il faudrait ajouter:

  • Des défauts corrects dans le constructeur, genre "~" en path local et "/" en path remote
  • connect n'a aucune raison d'être protected, il devrait être private
  • l'API pour l'upload est immonde, pourquoi ne pas filer juste un chemin de fichier local et en option un nom de fichier remote (par défaut, le fichier remote a le même nom que le fichier local et baste)
  • Une opération type "cd" serait bien plus utile qu'un ParentRep hardcodé (suffit de cd(".." ) et c'est équivalent)
  • C'est la première fois que je vois quelqu'un utiliser les code conv' C# en PHP [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Avis sur ma classe FTP

 

Sujets relatifs
Connaitre le nom d'une classe enfant (sans l'instancier)std::map associer des index et une classe, comparison function
utiliser dans une methode toString() celle d'une autre classeQuestion classe session
[VB .NET] Comment utiliser une classe écrite en C#mon programme ne trouve pas la classe
votre avis m'interesse <?=[SGBD] Avis sur modélisation
pb applet et classe javaUne requete mySQL qui ne classe pas les résultats
Plus de sujets relatifs à : Avis sur ma classe FTP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR