[PHP5] CLASSE DE DOCUMENTATION DE CLASSES ET DE FONCTIONS

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 8 févr. 2006 à 20:11
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 18 nov. 2007 à 20:00
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/35950-php5-classe-de-documentation-de-classes-et-de-fonctions

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 nov. 2007 à 20:00
Merci à toi :-)
bj33 Messages postés 145 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 1 mai 2012
18 nov. 2007 à 19:10
sajut

très beau travail! merci pour la communauté.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
25 oct. 2006 à 16:33
Merci :-)
Epoc22 Messages postés 198 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 14 novembre 2008 1
25 oct. 2006 à 16:22
Nickel cette source !
10

ciao
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 févr. 2006 à 16:30
Encore un petit mot pour faire une demande :
cet outil de documentation est localisé. J'ai fait moi-même les traductions françaises et anglaises.
Un gentil monsieur m'a fait la traduction en allemand sans que je ne le demande.
Donc, je fais un appel : si quelqu'un veut s'amuser à en faire la traduction dans une autre langue, je suis preneur!
Il suffit pour ça d'aller chercher dans le répertoire 'locales' la traduction de son choix (français en l'occurence je suppose). Il y a donc un sous-répertoire 'français', un 'english' et un 'deutsch'. Dans ces sous-répertoires se trouvent 3 fichierx xml (éditable avec n'importe quel éditeur de texte). Il suffit de les ouvrir, et de traduire le contenu.
Exemple d'un tag :
en français :
<doc_comments>Commentaires auteur</doc_comments>
en anglais :
<doc_comments>Author's comments</doc_comments>
en allemand :
<doc_comments>Authoren Kommentare</doc_comments>

Bref, il suffit de traduire ce qu'il y a à l'intérieur des tags xml.
Ensuite, vous pouvez m'envoyer par email (il se trouve dans mes fichiers, en ouvrant une classe dans le répertoire 'class' par exemple, en début de chaque fichier de classe) les 3 fichiers xml.

Merci :-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 févr. 2006 à 12:12
Voilà, j'ai mis en place la notion de packages.
Le fonctionnement pour les classes a été profondément modifié... :-)
J'affiche aussi désormais le diagramme de la hiérarchie des classes d'un package. Pour l'instant c'est une liste xhtml, je me tâte pour en faire un diagramme GD, on va voir...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 févr. 2006 à 09:37
bon ben dans un premier temps, outre qques fonctionnalités supplémentaires, je vais modifier la façon de fonctionner de tout ça.
Je vais faire des uploads par "packages" de classes, afin de mettre plus en évidence les liens entre les classes d'un même package, avec un diagramme de leur hiérarchie, et un index commun au niveau du package.
J'ai déjà sorti les valeurs de retour, les valeurs par défaut des paramètres (mais ce n'est pas encore en ligne).
Ca se rapprochera déjà de ce que tu suggères :-)

Et merci, lol :-)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
17 févr. 2006 à 19:52
Bonne chance :)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 févr. 2006 à 13:52
Hello Coucou,

ouais, je ne sais pas si j'ai envie d'aller aussi loin :-)
Enfin pourquoi pas, c'est une jolie idée, quand même.
Pour l'instant, je tâche d'améliorer le moteur de base (c'est à dire, pousser les fonctionnalités existantes, en créer de nouvelles, concernant justement l'analyse du code).
Ensuite, oui, pourquoi pas! Mais ce sera pour une nouvelle version je pense, plus orientée outil de développement.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 févr. 2006 à 19:03
Malam, regarde la façon dont marche la CPAN : c'est un grouppe super gros : t'as des users qui postent des class et des fonctions, chaque grouppement de class et de fonctions sur un thème représente un module (enfin, c'est une librairie, mais on la nome module...) mais pour avoir de la documentation sur les modules, on ne se fait pas chier à séparer les codes... on les mélange, ce qui rend les codes beaucoup plus lisibles... Et bien la CPAN doit s'ouvrir à d'autres langages que le perl car c'est une méthode de programmation en grouppe qui a fait la gloire et la force de perl . Perl a aujourd'hui quelques avantages : il est facile à maitriser, il est rapide, il dispose de beaucoups de modules, d'utilisateurs, d'exemples, d'aide en ligne ou non, et il est déployé sur la plupart des machines linux, et facilement déployables sur les autres machines... Et on doit beaucoups de ces avantages à la CPAN (aide, groupes d'utilisateurs, modules, déploiment...). Ta source peut servir de base pour décrire tout le fonctionnement global d'un programme, et la façon de l'utiliser...

Tu pourrais même y ajouter des conventions de déclarations de fonctions (des prototypes pour les programmeurs C)... et comme ça, on verrait les types attendus, tu pourrais aussi lire les valeurs par défaut des paramètres... ect...

Bref, à ta place, si j'avais créé une source comme celle là, je ne la laisserais pas là... tu peux pousser l'analyse d'un code... permetre aux développeurs de faire du POD dans leurs programmes, leur permetre de déclarer les prototypes de fonctions, leur permetre de renvoyer à des pages de doc d'autres fonctions (les leurs ou sur le site php.net )...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
13 févr. 2006 à 12:48
Coucou => ok, c'est fait donc ;-) Mais ce que tu suggères, c'est que je donne la possibilité de générer la doc au format perldoc ? (puis utiliser ton source pour visualiser le format)

Missions_courtes => il suffit que tu cliques sur la vignette de la capture. Cela fonctionne bien pour moi (Firefox et IE).
Missions_courtes Messages postés 8 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 février 2006
13 févr. 2006 à 11:52
Bonjour,
Je n'arrive pas à voir l'image de la capture.
Je dois faire une mauvaise manoeuvre.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 févr. 2006 à 20:48
Malam, si tu veux bien, ne bosse pas sur le POD, je m'en charge :)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 févr. 2006 à 10:54
Ouais on verra, pas fini de lire moi ;-) Ca a pas l'air facile ce que tu suggères, Coucou ;-)
En attendant, j'ai localisé ce code. On peut choisir entre français et anglais (les deux seules langues que je maîtrise assez...), et donc crééer une doc en français, et/ou en anglais. Les répertoires sont différents. C'est très simple à utiliser :-)
Il est aussi très simple d'ajouter une langue d'ailleurs! Il suffit de l'ajouter dans les 3 petits fichiers XML de localisation, dans le répertoire 'locales'(ils toutes les contiennent les traductions, sous forme de flux XML donc), et d'ajouter le bouton pour choisir la nouvelle langue dans le formulaire que j'ai isolé dans le fichier 'localize.form.html' à la racine du script :-)
Tout le reste est automatique.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 févr. 2006 à 10:00
Trop long j'ai pas le temps ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 févr. 2006 à 09:08
bah moi j'ai jamais fait beaucoup de perl non plus...
Le pod est un langage de mise en page qui se siturait entre le html et le latex... disons qu'on ajoute des commentaires dans la source pour produire les pages man de programmes perl sous linux, ou perldoc je crois...

maxime@devmax:~$ perldoc perldoc
NAME
perldoc - Look up Perl documentation in Pod format.

Bon, donc, perldoc va chercher dans les sources la doc perl...

Pour moi, ce genre de module devrait être ajouté à ce genre de site, et on devrait créer une forme de CPAN pour php... (Antho, si tu m'entends...)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 févr. 2006 à 20:56
Ok pour POD, je suis entrain de zyeuter ça sur le net.
Mais tu peux faire un résumé ;-)
Je me manifesterai quand j'aurai approfondi la chose.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 févr. 2006 à 20:55
Hello Coucou,

Merci, déjà :-)
Je n'ai pas fini ma source en effet...mais si tu as des idées, je veux bien; parce que je vais vite être à court ;-) Le truc certain, c'est que je ne veux pas en faire une usine à gaz, de toutes façons.
Là, je suis entrain de finaliser la localisation (permettre de créer une doc dans une autre langue que le français), via des flux xml (mon dada :-) ).
J'ai fait un peu de perl oui, mais pas énormément. J'ai beaucoup aimé...mais jamais eu l'occasion d'approfondir, parce qu'au gré de mes changements de boîtes, aucune ne m'a permis de me lancer dans un projet Perl (et pourtant, j'ai même dû faire du delphi...c'est dire si c'est un comble lol).
Du coup, je ne sais pas de quoi tu parles, là. POD, kesako?
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
10 févr. 2006 à 19:23
Salut
ce projet est très interessant, et j'éspère malam que tu n'en resteras pas là... (et oui désolé, mais je trouve que ça n'est pas achevé...)

Malam, t'as déja fait du perl ? Si oui, alors pourquoi t'as pas ajouté le POD ? Si non, alors renseignes toi sur le POD parcequ'avec ta source, on peut faire un truc géant...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 févr. 2006 à 13:44
Isengard => Merci :-)
J'en, profite pour dire que je viens de faire une grosse mise à jour. On peut désormais documenter les fonctions. Le script va prendre toutes les fonctions utilisateurs définies dans un fichier uploadé, et les documenter, comme pour les classes :-)
cs_Isengard Messages postés 83 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 10 février 2006
10 févr. 2006 à 13:42
Impressionant ! Vraiment bravo !!
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 17:20
Heu pour le 2ème point, ce ne sont pas des packages, je voulais dire qu'il y a une liste des classes documentées, et un accès vers elles.
Mais pas pour les package de documentations, non. Pas encore en tous cas :-) C'est une bonne idée.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 17:16
Ah ben :
Non. Mais pourquoi pas, je vais y penser.
Voilà ce qui est fait de similaire :

- les commentaires sont bien récupérés, s'ils commencent ainsi :
/** blabla */ (je veux dire par là : slash, étoile, étoile, espace...puis ce qu'on veut, puis on ferme avec étoile et slash).

- les packages, c'est présent dans l'interface utilisateur que j'ai ajouté, oui, sauf que je ne liste pas le contenu des répertoires : juste les différentes documentées.
Je vais penser au fichier index.html, voui. Mais je veux l'organiser de la bonne manière, pour que ça ne pose de problème ni dans le cas d'une navigation directement dans le répertoire docs/ de mon script, ni en cas d'une copie de la documentation, vers un autre script.
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
9 févr. 2006 à 17:08
(ok pour le message je comprends)
Non en fait je parlais des packages de documentation. Par exemple :

* @author stailer
* @version 1.0.1.2
* @name Persistance
* @package Persistance

Donc en fait je me demandais si tu allais générer un fichier (index.html par exemple) qui liste les noms des packages présent dans les répertoires. Et quand on clique sur un package, on accède aux classes de ce dernier.
Avec cette arborescence :

Package1
- classe 1
- classe 2
...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 17:02
Heu, et merci, Stailer, pour le message que j'ai effacé (je l'ai effacé pour une autre raison que le compliment qui m'était adressé évidemment ;-) ).
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 17:00
Des extensions? Je ne pense pas. La doc officielle le fait très bien toute seule, pour les packages officiels. Pour les autres, quelqu'un capable de développer une extension voudra sans doute développer sa propre doc. Mais bon, on verra...Dans un premier temps, je compte rajouter la documentation de fonctions simples.
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
9 févr. 2006 à 16:57
Tu penses rajouter la gestion des packages ?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 16:03
Bah 7 c'est pas une mauvaise note lol, on a le droit de pas trouver ça parfait non plus ;-). Et je ne lui en veux pas du tout (je peux, vu que je sais qui c'est lol), 7 c'est convenable :-)
Mais bon, encore merci de défendre mon code lol ;-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 févr. 2006 à 15:51
Qui a mis 7 à ça franchement... pffff n'importe quoi on aura tout vu...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 15:13
Marciiii :-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 févr. 2006 à 14:05
J'ai mis à jour WAMP ^^ et ça marche, et c'est très beau ;-) donc le 10 est toujours de rigueur :-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 13:47
Bon ok, petite info lol : si vous n'avez pas php 5.1, n'essayez pas mon script sur les classes que je propose :-)
Essayez le sur VOS classes, les miennes vont poser des problèmes lors de leur inclusion dans la page index.php dûs à des spécificités php5.1
(merci Antho).
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 12:19
Tien au passage, ça devrait marcher pour toi maintenant, je teste toutes les méthodes que j'utilise et qui ont été incluse à partir de php5.1; si elles ne sont pas impléméntées, je ne les utilise pas.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 12:17
Merci lol, et je plaisantais ;-)

Bon j'ai fait pas mal d'ajouts ce matin.
Notamment, on peut désormais voir le code d'une classe, ou d'une méthode. Ca ralentit pas mal la génération mais j'ai optmisé comme j'ai pu (ne pas réouvrir le fichier autant de fois qu'on a de méthode, si c'est le même fichier, par exemple).
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
9 févr. 2006 à 11:17
"Lol, la capture, le titre...qui a dit que pour plaire, fallait un bon code bien structuré, efficace, et qui tourne?? Naaan, un joli titre, une capture qui le fait...et z'avez 10 !! ;-)"

Nan faut s'appeler Malalam aussi, je fais confiance et j'ai matté le code qu'est très proprement écrit ;-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 10:48
Et c'était plus pour m'amuser avec l'API de Réflexion de PHP5 qu'autre chose : ça faisait longtemps que je passais vite ce chapitre sans le lire (trop de trucs à lire), et il y a 2 jours, je me suis décidé à le lire. Et je me suis rendu compte que c'était très simple, et plutôt rigolo finalement. Donc j'ai décidé de développer une petite application qui en tire partie, pour voir jusqu'où on peut aller avec.
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 10:40
Superbaloo => oui il est de moi, et ce n'est pas une usine à gaz (pas l'intention d'ailleurs d'en faire une usine à gaz ;-) ). Et il documente tout seul. En fait, il ne va pas documenter DANS les classes, il crée une documentation html résumant la classe (et sa hiérarchie): type de classe, méthodes, propriétés, etc etc...et les commentaires utilisateurs.
cs_stailer Messages postés 507 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 13 mai 2009 1
9 févr. 2006 à 10:37
"parce que j'ai deja entendu parlé d'un gros projet qui permettait justement de documenter ses classes"

Ben y en a à gaver des applications de documentation de classes et de projets PHP. PHPDOCUMENTOR, MANTA comme tu viens de le dire, DOXYGEN ou encore des solutions DOCBOOK, bref, c'est la grande mode du moment les documentations automatique.
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
9 févr. 2006 à 10:25
http://phpmanta.sourceforge.net/

mais c'est peut-etre un peu plus usine à gaz que le tien .... je sais pas j'ai pas essayé
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
9 févr. 2006 à 10:23
Salut,
malalam il est de toi ce script (j'ai pas regardé le code :D) ? parce que j'ai deja entendu parlé d'un gros projet qui permettait justement de documenter ses classes (c'est l'equivalent de phpmyadmin mais pour les classes en faite ...)

j'essayerai de retrouver le lien si j'ai le temps ...

Superbaloo
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 févr. 2006 à 07:55
Lol, la capture, le titre...qui a dit que pour plaire, fallait un bon code bien structuré, efficace, et qui tourne?? Naaan, un joli titre, une capture qui le fait...et z'avez 10 !! ;-)

Antho => je regerderai ce matin pour ton problème avec ce code...parce qu'en local je tourne aussi sous wamp, en php 5.1, et ça marche. Idem sur un des serveurs de prod, en php 5.1 aussi.
Donc je suis très étonné par la réaction de ton serveur devant mon code ;-) Je vais sans doute tester l'existence des méthodes avant de les lancer, dans ce cas...chais pas trop encore :-)
neojet Messages postés 7 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 24 août 2006
8 févr. 2006 à 22:22
Le titre aussi est pas mal ;-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 févr. 2006 à 20:11
C'est excellent quand je vois la capture (voir mon autre commentaire sur codes-php). je mets 10 sans hésitation.