Créer une classe pour se connecter au ftp - PHP - Programmation
Marsh Posté le 27-03-2015 à 16:20:00
Salut,
Quand tu fais le :
Code :
|
Tu fais passer en paramêtres de connexion 3 infos.
Or ta méthod connexion, n'en fais rien...
Code :
|
il te faudrai setter ces valeurs et les utiliser
C'est ici que ton problème ce localise
Marsh Posté le 27-03-2015 à 16:26:37
Pourquoi t'as mis ta fonction connexion() en protected au lieu de public
Par ailleurs, elle ne prend aucun paramètre alors que dans ton index.php, tu en passes. Enfin, dans la fonction connexion, à aucun moment tu initialises les attributs private avec les paramètres passés à connexion()
Bref, tu fais n'importe quoi. Je te recommande de lire des tutos sur la programmation objet avant de commencer à coder, sinon, tu vas perdre beaucoup de temps en débuggage pour des trucs tous con
Marsh Posté le 27-03-2015 à 16:47:43
Re,
Déjà merci d'avoir répondu si vite.
@scull=> Pour ce qui est de passer des valeurs à connexion(), j'ai bien essayé, comme ceci :
Code :
|
Mais ça ne change pas grand-chose. Après peut-être que je le fais mal ?
@rufo => Pour ce qui est de lire des tutos, je suis tout à fait d'accord, c'est bien ce que je fais. Mais après faut passer à la pratique sinon on risque pas d'avancer plus. Je vais continuer mes recherches mais j'aurais bien aimé savoir dans quelle direction avancer précisément, c'eut été plus rapide .
Citation : Enfin, dans la fonction connexion, à aucun moment tu initialises les attributs private avec les paramètres passés à connexion() |
Je ne suis pas sûr d'avoir compris cette partie là.
Merci encore de vos réponses.
Marsh Posté le 27-03-2015 à 16:53:13
ReplyMarsh Posté le 27-03-2015 à 17:02:52
Splagadou a écrit : Re,
|
Le concept de private, protected et public étant la base de la POO, je réitère mon conseil de lire des tutos. Ton pb provient très probablement du fait que la méthode connexion() est protected (elle devrait être public) : http://openclassrooms.com/courses/ [...] heritage-3
Le fait que tu ne parles pas de msg d'erreur à ce sujet me laisse à penser que t'as pas dû bien activer tous les msgs d'erreur de PHP
Marsh Posté le 28-03-2015 à 13:23:59
Re,
Il semblerait que ça marche avec le code suivant (la classe FTP est devenue Connexion pour un souci de lisibilité) :
connexion.class.php
Code :
|
Index.php
Code :
|
Donc d'abord, un grand merci pour les liens, effectivement je me sers ce ce site en général, mais j'avais du louper ce cours.
Ensuite quelques questions quand même pour bien tout comprendre :
- A quoi servent les Getters/setters ? bien sûr, sans le code marche, j'ai bien cru comprendre qu'ils permettaient d'utiliser les variables hors de la classe, mais je vois pas pourquoi dans mon code ça marche.
En effet, je reste tout le temps dans mon objet là, vu que j'ai réduit l'appel extérieur à la fonction __construct non ?
- Petit 2, j'ai essayé de minimiser le code mais il n'y a pas une façon encore plus rapide d'écrire ce que je viens de faire ?
Voilà, en tout cas je remercie encore les intervenants sur cette question, sans vous je n'aurais pas trouvé aussi vite.
Ah oui, pour la remarque sur les codes d'erreurs, effectivement je ne sais pas les afficher. J'ai bien testé de mettre ce code en début de document
Code :
|
mais ça ne sert à rien du tout. C'est peut-être parce que j'ai pas la main sur le php.ini étant en serveur mutualisé ? En tout cas, je serais intéressé de savoir comment les afficher ces erreurs de script .
Marsh Posté le 29-03-2015 à 13:52:22
Je vais te redire pour la 3ème fois ce que je t'ai dit : lis le cours concernant la POO et les notions de private, protected et public. Ces 3 valeurs représentent un concept fondamental de la POO. Si tu ne comprends pas pourquoi tu as besoin des accesseurs get et set quand tu as des attributs d'une classe déclarés en private, alors c'est que tu n'as pas compris le concept. Le cours t'aidera aussi à comprendre pourquoi un constructeur de classe peut avoir besoin de paramètres.
Marsh Posté le 27-03-2015 à 15:32:23
Bonjour à tous,
Voilà, je suis en train de monter un petit projet perso (on reste dans le débutant) dans lequel j'ai besoin de créer un module qui va chercher tout seul des infos sur mon ftp pour les afficher, les traiter etc.
J'ai écrit le code suivant pour me connecter et ça fonctionne (enfin, c'est surtout le code du manuel php, j'ai pas fait grand-chose non plus) :
Du coup, pour réutiliser plus facilement ce code sur d'autres modules, je voudrais le transformer en classe. Malheureusement, j'y connais pas grand-chose vu que ça ne marche pas tellement.
J'ai créé deux fichiers : FTP.class.php et index.php pour tester rapido sur un serveur, mais rien ne se passe (je pense que c'est au niveau de la transmission des infos que ça plante, mais évidemment je n'en sais rien). Voici le code :
FTP.class.php
Là je me suis inspiré du code mis en lien (si ça a réussi) d'un autre article sur ce forum, de 2008. J'ai bidouillé la fin.
Index.php
Je ne suis pas du tout sûr de ce code là, c'est ici que j'ai le moins de connaissance, j'ai commencé à lire des trucs sur les classes y a un mois environ et je n'arrive à rien. Mais j'ai bon espoir que ça change . Le truc c'est que index.php devrait se connecter au FTP et m'afficher le message "youpi je suis connecté" comme sur le premier exemple.
Si j'ai bien compris, le __construct me permet de mettre à 0 les valeurs de l'objet à chaque instance, et il faudrait donc que je passe mes params de connexion quand je crée un objet, comme sur le index.php. Mais je me trompe peut-être sur l'endroit où les passer ? ou juste sur le code en lui-même, mais là, je vois pas où du tout.
Voilà voilà, donc si quelqu'un avait une idée, un conseil, n'importe quoi qui me permette d'avancer sur ce problème, merci bien.