XML DE DESCRIPTION DE DOSSIERS NAUTILUS

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 - 10 avril 2008 à 14:09
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 14 avril 2008 à 17:20
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/46328-xml-de-description-de-dossiers-nautilus

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
14 avril 2008 à 17:20
je vois ce que tu veux dire, mais le fait que la spl soit là t'évite les tracas de faire un readdir ($resource) === false etc
tu fait juste un
foreach ($oDirectoryIt as $sKey=>$sValue) { // et hop ! }

de plus tu a les fonctions isDot, bien sympa pour éviter les "." et ".." et quelques autres avatanges. Ca relève peut-etre plus du namespace, mais au final en quoi c'est genant ? la classe sert pour ce à quoi elle doit servir, c'est parfait.

Apres c'est vrai que dans ton cas, pour l'attente que tu en as, c'est peut-etre d'un autre niveau que la spl ne te permet pas, mais la désolé j'ai pas les compétences nécéssaires pour comparer à du c++.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 avril 2008 à 10:37
sisi, je pourrais, j'utilise regulierement la spl, mais plus pour des choses genre countable, arrayacces, itterator, ce genre de choses...
http://www.php.net/~helly/php/ext/spl/

en fait, c'est une partie que je trouve mal concue...
meme pour les itterateurs, le typage de php fait que c'est bordelique, comme on a pas les generiques en php (normal vu le style du langage), bah tu fais un itterator sur n'importe quoi, t'as toujours un n'importe qui comme type de retour, tu ne peux pas faire comme la STL du Cpp genre vector, ou des choses du genre... ca en php, c'est pas possible...

faire un itterator<MonObjetPerso> ca peut sembler useless... mais par contre, quand j'avais teste la directoryitterator, j'avais pas vu un langage oriente objet... j'y avais vu un namespace...
pourquoi ?
parce-que tu ne peux pas dire a ton directoryitterator de creer des objets de ton propre type...
personellement, j'avais besoin d'un truc qui me sorte plus d'infos sur les fichiers que la splFileInfo en donnait pour faire mon projet....
class MonFichier extends SplFileInfo
mais en fait, le probleme, c'est que le directoryitterator, lui il ne fait pas de classes personalises, il se contente d'un simple SplFileInfo...

autant mettre ces classes avec un attribut final, et dire "si tu veux faire semblant de faire de l'objet, utilise moi"
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
11 avril 2008 à 10:14
@Coucou : Tu utilse quelle version de php ? car php5, avec la classe DirectoryIterator, te permet de parcourir un dossier très facilement et plus agréablement qu'avec opendir et readdir :)
cs_depression Messages postés 100 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 13 juillet 2009
11 avril 2008 à 09:00
Merci pour cette source :-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 avril 2008 à 08:54
:) merci.
pour urlencode, ouais, je sais pas pourquoi, mais ca passait mal...
pour $a, $b, $c, c'est un de mes gros defauts en prog...
c'est un simple utilitaire pas forcement tres bien code, je l'ai mis comme ca parce-que meme imparfait, il ne presente pas de grosses erreurs, et conserve son utilite :)

j'utilise en general fvwm ou gnome, mais toujours nautilus (sauf pour le sftp ou j'utilise alors konqueror), ca depend des periodes en fait, faudrait que je prenne le temps de scripter (un peu plus) pour fvwm.
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
11 avril 2008 à 01:23
Salut coucou747,

Bon j'ai (étonnament) quelques remarques. Les mêmes que l'usuel et je suis certain que tu vas trouvé à me contredire, mais je les signales quand même :P

Bon déja substr($b, strlen($b)-3) peut être remplacé par substr($b,-3) (au passage, si l'image a une extension .jpeg ton script le voit pas alors que c'est valide, c'est donc mieu d'isoler l'extension)

Ensuite {0}, il serait judicieux d'utiliser les [ ] plutot. Pour la compatibilité éventuelle avec php6 qui ne les auras pu (entre autre) mais je sais que cet argument la vaut rien, c'était une remarque au passage.

Il y a aussi les comparaison === lorsque tu compare un même type. Si je le signale c'est parce que des fois tu l'utilises et des fois non, donc manque de constance.

Ta fonction encode à quel intêret sachant que urlencode remplace tous les chars spéciaux d'une chaine alors que la tiennes en fait juste quelques uns ? Je crois comprendre que c'est à cause des slash que urlencode convertirait ? Mais du coup certains caractères que tu ne remplace pas (comme ; à ç ^ @=? " ' , la plupart des car ASCII passe dans le nom d'un fichier unix je crois) vont nuire au bon fonctionnement non ?

Dernière chose: tes variables a, b, c, et compagnie: Ça serait mieu de leurs donner un noms représentatif de leur valeur. Il me semble que c'est une des premières règles à respecter quand on développe sinon on s'y perd...


Bon c'était juste des petits trucs comme ça parce que ton code dans l'ensemble ya rien à redire... Code original même si moi je préfère xfce, ça fait changement des codes récurrent sur ce site.
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
10 avril 2008 à 14:09
A titre d'information tu aurais pu gérer la récupération de l'extension du fichier à partir de la fonction pathinfo() et sa constante PATHINFO_EXTENSION.
Rejoignez-nous