Juste une petite remarque sur l'ouverture d'un compte pop.
Ayant moi-même développé ce genre d'outil, je pense que tu n'as pas pris en compte les connexions SSL.
Par exemple avec cette classe je suis presque sûr que tu ne puisses ouvrir une boîte mail Gmail ni même Wanadoo.
Si qq veux des infos à ce sujet, tell me more ;)
Bon courrage et bonne journée.
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 février 2009 26 nov. 2007 à 22:24
Je parlais de mis en constance car tu n'as pas de setter et donc ta propriété domaine ne peut a aucun moment changer donc inutile de la mettre en temps que propriété, CQFD. Je n'ai en tout cas pas voulu dire que ca DEVAIT etre une constante, dans ton cas, ca eviterai une manipulation non voulue.
Pour la séparation entre la présentation HTML et ta classe, c'est que si tu veux supprimer les tableaux pour les remplacer par autre chose, t'es obligé de modifier ta classe, ce qui ne doit jamais etre le cas.
Pour le découpage,
Je verrai à vu de nez 4 entités différentes.
- le serveur de mail (systeme de connexion)
- l'utilisateur du compte mail (permet de vérifier l'existence du compte et de vérifier aussi les params de connexion, gestion d'utilisateur etc.)
- un message : c'est une entité atomique, donc devrait quasi pouvoir etre traiter independament, voir peut etre un messageIterator (liste de message)
- une classe repertoire permettant la création, suppression de suppression, visualisation d'un répertoire de message
tu devrais peut etre/surement sortir ton utilisateur de ta classe et passer l'objet en reference au niveau du constructeur et/ou via un setter
public function setUtilisateur(Utilisateur $oUser){
$this->utilisateur = $oUser->getPseudo();
$this->password = $oUser->getPassword();
}
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 nov. 2007 à 20:56
re,
"Pourquoi faire un constante avec le domaine? Je serai obligé de faire une class par domaine alors? "
=> moi je ne suis pas d'accord. Par définition, ce n'est pas une constante. Cela doit demeurer une propriété dynamique, MAIS que l'on peut setter.
Pour la présentation : si tu fais une classe output, basé par exemple sur un fichier de templating (xml ou autre), tu n'as plus de code dans tes pages html. ET on peut modifier l'apparence très facilement.
Ce n'est pas le cas ici.
Pour le découpage je laisse Garfield répondre, c'est son bin's ;-)
waterw72
Messages postés63Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention18 juillet 2008 26 nov. 2007 à 20:26
Bonjour,
Qu'entends-tu par "un peu plus/mieux découper cette classe"?
Pourquoi faire un constante avec le domaine? Je serai obligé de faire une class par domaine alors?
Pour les répertoires imap, cette class ne permet pas de créer de nouveau répertoire donc je n'ai pas
pensé à en lister plus.
Enfin, la présentation me permet de réduire le code dans mes pages html. Il faut choisir...
Merci de ton commentaire.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 nov. 2007 à 20:25
Hello,
pour rebondir sur ce que dit Garfield :
- je trouve moi génant que tu n'aies pas de getter ni de setter pour les propriétés changeantes : domaine, format des emails...Ou au moins un méthode de configuration. Tu as des accesseurs, mais puisque tu bosses en php5, pourquoi ne pas utiliser __get() ? M'enfin, ça, c'est une question de préférence après tout.
- je suis tout à fait d'accord sur le html et les css : tu devrais vraiment les sortir de là.
Pour faciliter la vie des débutants, j'aurais mis une classe output, gérant l'output donc, et basée sur un système de templating simple (et propriétaire : j'entends par là, inutile de charger un smarty ou autre...ce serait bien trop lourd pour rien. D'ailleurs, c'est touyjours trop lourd pour rien les moteurs de template à la Smarty ;-) mais ça n'engage que moi!).
- ça manque de tests d'intégrité des paramètres reçus. On peut passer n'importe quoi, ta classe essayera de s'en servir et plantera lamentablement. Encore une fois, des exceptions avec un message clair seraient les bienvenues.
- j'aime bien avoir des variables typées, moi, ça facilite nettement les choses quand on relit un code. Mais bon.
- vu que t'as inclus tout le html, autant donner ta css et les images avec le code, non? Parce que là...le faire tourner donnerait quelque chose de très moche, pour test.
- sinon c'est pas mal! Ca change un peu comme type de code, c'est agréable. Et puis c'est aéré, facile à lire.
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 février 2009 26 nov. 2007 à 19:39
juste pour info :
dans ta méthode trouverNom, tu fais (erreur plusieurs fois présentes) :
for ($i=0;$i<sizeof($dparam);$i++)
tu devrais sortir sizeof de la boucle, ca fait un calcul inutile a chaque itération (temps de perdu)
tu as des propriétés sans setter ni getter, c'est pas forcement génant, mais ca me choque un peu.
de plus, tu initialises le domaine dans la définition de ta classe, autant le faire dans une constante de classe, comme ca aucun risque qu'il y ait de modification de celle-ci
Tu devrais peut etre un peu plus/mieux découper cette classe.
De plus, tu ne devrais pas inclure la présentation a ta classe, i.e. ne pas avoir de HTML dedans
Enfin, je ne suis pas sur qu'en imap, il n'y ait que 4 "types de repertoire" (INBOX.Trash, INBOX.Draft, INBOX.Sents, INBOX), un plus serait une gestion de l'envoi et du POP
Bon courage, et merci de ta participation
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 26 nov. 2007 à 19:20
Les bonnes balises php sont <?php et non <? qui peuvent être confondues avec un tag XML
cs_garfield90
Messages postés388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 février 2009 26 nov. 2007 à 15:14
juste un petit message pour suivre ce fil :P.
je regarderai ta classe dès que j'aurais un peu de temps
25 sept. 2014 à 12:54
4 avril 2008 à 15:47
y aurait-il par hasard moyen d'avoir un exemple d'utilisation ?
Merci
3 déc. 2007 à 09:53
Juste une petite remarque sur l'ouverture d'un compte pop.
Ayant moi-même développé ce genre d'outil, je pense que tu n'as pas pris en compte les connexions SSL.
Par exemple avec cette classe je suis presque sûr que tu ne puisses ouvrir une boîte mail Gmail ni même Wanadoo.
Si qq veux des infos à ce sujet, tell me more ;)
Bon courrage et bonne journée.
26 nov. 2007 à 22:24
Pour la séparation entre la présentation HTML et ta classe, c'est que si tu veux supprimer les tableaux pour les remplacer par autre chose, t'es obligé de modifier ta classe, ce qui ne doit jamais etre le cas.
Pour le découpage,
Je verrai à vu de nez 4 entités différentes.
- le serveur de mail (systeme de connexion)
- l'utilisateur du compte mail (permet de vérifier l'existence du compte et de vérifier aussi les params de connexion, gestion d'utilisateur etc.)
- un message : c'est une entité atomique, donc devrait quasi pouvoir etre traiter independament, voir peut etre un messageIterator (liste de message)
- une classe repertoire permettant la création, suppression de suppression, visualisation d'un répertoire de message
tu devrais peut etre/surement sortir ton utilisateur de ta classe et passer l'objet en reference au niveau du constructeur et/ou via un setter
# $u = new Utilisateur();
# $u->lire($id_user);
# $this->utilisateur = $u->getPseudo();
# $this->password = $u->getPassword();
public function setUtilisateur(Utilisateur $oUser){
$this->utilisateur = $oUser->getPseudo();
$this->password = $oUser->getPassword();
}
26 nov. 2007 à 20:56
"Pourquoi faire un constante avec le domaine? Je serai obligé de faire une class par domaine alors? "
=> moi je ne suis pas d'accord. Par définition, ce n'est pas une constante. Cela doit demeurer une propriété dynamique, MAIS que l'on peut setter.
Pour la présentation : si tu fais une classe output, basé par exemple sur un fichier de templating (xml ou autre), tu n'as plus de code dans tes pages html. ET on peut modifier l'apparence très facilement.
Ce n'est pas le cas ici.
Pour le découpage je laisse Garfield répondre, c'est son bin's ;-)
26 nov. 2007 à 20:26
Qu'entends-tu par "un peu plus/mieux découper cette classe"?
Pourquoi faire un constante avec le domaine? Je serai obligé de faire une class par domaine alors?
Pour les répertoires imap, cette class ne permet pas de créer de nouveau répertoire donc je n'ai pas
pensé à en lister plus.
Enfin, la présentation me permet de réduire le code dans mes pages html. Il faut choisir...
Merci de ton commentaire.
26 nov. 2007 à 20:25
pour rebondir sur ce que dit Garfield :
- je trouve moi génant que tu n'aies pas de getter ni de setter pour les propriétés changeantes : domaine, format des emails...Ou au moins un méthode de configuration. Tu as des accesseurs, mais puisque tu bosses en php5, pourquoi ne pas utiliser __get() ? M'enfin, ça, c'est une question de préférence après tout.
- je suis tout à fait d'accord sur le html et les css : tu devrais vraiment les sortir de là.
Pour faciliter la vie des débutants, j'aurais mis une classe output, gérant l'output donc, et basée sur un système de templating simple (et propriétaire : j'entends par là, inutile de charger un smarty ou autre...ce serait bien trop lourd pour rien. D'ailleurs, c'est touyjours trop lourd pour rien les moteurs de template à la Smarty ;-) mais ça n'engage que moi!).
- ça manque de tests d'intégrité des paramètres reçus. On peut passer n'importe quoi, ta classe essayera de s'en servir et plantera lamentablement. Encore une fois, des exceptions avec un message clair seraient les bienvenues.
- j'aime bien avoir des variables typées, moi, ça facilite nettement les choses quand on relit un code. Mais bon.
- vu que t'as inclus tout le html, autant donner ta css et les images avec le code, non? Parce que là...le faire tourner donnerait quelque chose de très moche, pour test.
- sinon c'est pas mal! Ca change un peu comme type de code, c'est agréable. Et puis c'est aéré, facile à lire.
26 nov. 2007 à 19:39
dans ta méthode trouverNom, tu fais (erreur plusieurs fois présentes) :
for ($i=0;$i<sizeof($dparam);$i++)
tu devrais sortir sizeof de la boucle, ca fait un calcul inutile a chaque itération (temps de perdu)
tu as des propriétés sans setter ni getter, c'est pas forcement génant, mais ca me choque un peu.
de plus, tu initialises le domaine dans la définition de ta classe, autant le faire dans une constante de classe, comme ca aucun risque qu'il y ait de modification de celle-ci
Tu devrais peut etre un peu plus/mieux découper cette classe.
De plus, tu ne devrais pas inclure la présentation a ta classe, i.e. ne pas avoir de HTML dedans
Enfin, je ne suis pas sur qu'en imap, il n'y ait que 4 "types de repertoire" (INBOX.Trash, INBOX.Draft, INBOX.Sents, INBOX), un plus serait une gestion de l'envoi et du POP
Bon courage, et merci de ta participation
26 nov. 2007 à 19:20
26 nov. 2007 à 15:14
je regarderai ta classe dès que j'aurais un peu de temps