abdoulax
Messages postés875Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention22 juin 20121 5 déc. 2008 à 14:16
Oula vous êtes pas très sympas!! Bon après, c'est vrai qu'il aurait peut être pas dû mettre initié mais plutôt débutant (enfin perso je mes toujours débutant, au moins je suis trankil).
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 28 nov. 2008 à 07:58
et si on veut definir la hauteur et pas la largeur ?
et si on veut definir une hauteur et une largeur maximale ?
et si on s'en fout de la proportionalite ?
bref, ca manque clairement d'option.
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 28 nov. 2008 à 00:32
Salut,
Je suis navré de te dire que ta source est presque quasiment inexploitable en l'état. Je me demande même pourquoi tu as créé une classe quand une fonction aurait suffit. De plus c'est carrément le fouillis dans ton code. Voilà une liste non exhaustive de ce qui ne va pas dans ce code selon moi :
1/ Tu mélanges syntaxe PHP 4 et syntaxe PHP 5. En effet, tu utilises bien le mot-clé "public" pour tes méthodes mais à contrario tu utilises encore le mot-clé "var" issu de PHP 4. Un attribut "private" ou "protected" ferait davantage l'affaire soit dit en passant pour plus de sûreté de programmation.
2/ Tes noms de méthodes sont tantôt en anglais, tantôt en français, tantôt en lower camel case ou bien tantôt en lower case avec underscore. Quel intérêt ? On s'y perd ! Apporte au développeur une API cohérente dans la manière de l'employer. Personnellement j'ai une préférence pour les noms de méthodes en anglais et lower camel case.
3/ Tu définis en dur les dimensions finales de la miniature au sein même de la méthode creerMiniature(). Comment je fais si je veux une miniature de 110 x 110 px ? Comment je fais si je dois générer en une passe plusieurs miniatures de dimensions différentes de mon image ? Et bien je ne peux pas, ce qui rend ton code complètement inutile. Tu aurais pu faire l'effort minimum de placer ces deux variables en paramètre de la méthode. Ainsi nous pourrions faire :
4/ Tu ne crées des miniatures qu'à partir d'images JPEG. Et si je veux miniaturiser un GIF, un BMP ou un PNG par exemple ? Bah je ne peux pas...
5/ Et si j'ai envie de changer le nom et le répertoire de destination des miniatures facilement ? Là encore, il aurait fallu proposer un paramètre facultatif à ta méthode creerMiniature()
6/ Que se passe-t-il si j'essaie de passer un fichier PHP à la place d'une image, ou bien une image avec un nom à la con ? Tu ne gères aucune erreur en cas de problème. Le nommage de l'image final n'est pas sain non plus car on peut mettre n'importe quel caractère à la con dans le nom de l'image originale, on l'aura à nouveau dans l'image miniaturisée. Bonjour les dégâts que ça peut produire en terme de sécurité...
7/ Où sont les tests sur l'extension, le type, les dimensions... ? Tu ne connais pas getimagesize() ?
8/ A quand l'implémentation de fonctionnalités plus sympas comme le crop, l'inversion des couleurs, la génération d'un captcha... ?
Au final, j'espère que tu vois clairement que ta source n'est pas adaptée et inutilisable en l'état. As-tu compris l'intérêt des fonctions utilisateurs ? As-tu compris ensuite l'intérêt de faire des classes ?
5 déc. 2008 à 14:16
28 nov. 2008 à 07:58
et si on veut definir la hauteur et pas la largeur ?
et si on veut definir une hauteur et une largeur maximale ?
et si on s'en fout de la proportionalite ?
bref, ca manque clairement d'option.
28 nov. 2008 à 00:32
Je suis navré de te dire que ta source est presque quasiment inexploitable en l'état. Je me demande même pourquoi tu as créé une classe quand une fonction aurait suffit. De plus c'est carrément le fouillis dans ton code. Voilà une liste non exhaustive de ce qui ne va pas dans ce code selon moi :
1/ Tu mélanges syntaxe PHP 4 et syntaxe PHP 5. En effet, tu utilises bien le mot-clé "public" pour tes méthodes mais à contrario tu utilises encore le mot-clé "var" issu de PHP 4. Un attribut "private" ou "protected" ferait davantage l'affaire soit dit en passant pour plus de sûreté de programmation.
2/ Tes noms de méthodes sont tantôt en anglais, tantôt en français, tantôt en lower camel case ou bien tantôt en lower case avec underscore. Quel intérêt ? On s'y perd ! Apporte au développeur une API cohérente dans la manière de l'employer. Personnellement j'ai une préférence pour les noms de méthodes en anglais et lower camel case.
3/ Tu définis en dur les dimensions finales de la miniature au sein même de la méthode creerMiniature(). Comment je fais si je veux une miniature de 110 x 110 px ? Comment je fais si je dois générer en une passe plusieurs miniatures de dimensions différentes de mon image ? Et bien je ne peux pas, ce qui rend ton code complètement inutile. Tu aurais pu faire l'effort minimum de placer ces deux variables en paramètre de la méthode. Ainsi nous pourrions faire :
$img->creerMiniature(100,100);
$img->creerMiniature(300,300);
4/ Tu ne crées des miniatures qu'à partir d'images JPEG. Et si je veux miniaturiser un GIF, un BMP ou un PNG par exemple ? Bah je ne peux pas...
5/ Et si j'ai envie de changer le nom et le répertoire de destination des miniatures facilement ? Là encore, il aurait fallu proposer un paramètre facultatif à ta méthode creerMiniature()
6/ Que se passe-t-il si j'essaie de passer un fichier PHP à la place d'une image, ou bien une image avec un nom à la con ? Tu ne gères aucune erreur en cas de problème. Le nommage de l'image final n'est pas sain non plus car on peut mettre n'importe quel caractère à la con dans le nom de l'image originale, on l'aura à nouveau dans l'image miniaturisée. Bonjour les dégâts que ça peut produire en terme de sécurité...
7/ Où sont les tests sur l'extension, le type, les dimensions... ? Tu ne connais pas getimagesize() ?
8/ A quand l'implémentation de fonctionnalités plus sympas comme le crop, l'inversion des couleurs, la génération d'un captcha... ?
Au final, j'espère que tu vois clairement que ta source n'est pas adaptée et inutilisable en l'état. As-tu compris l'intérêt des fonctions utilisateurs ? As-tu compris ensuite l'intérêt de faire des classes ?
++
Hugo.