Page 1 sur 1

Doxygen 1.5.8 bugs ?

Posté : 24 févr. 2009, 16:48
par katagoto
Bonjour à toutes et à tous,

A noté, j'ai eu du mal à choisir la catégorie où poster ce message :
Il y avait un sujet d'HyWaN dans la partie "Outils", mais j'ai pensé que j'allais le polluer, je l'aurais bien mis dans "Outils", mais, au vu du descriptif elle concerne les actualités, donc...
Bref, si j'ai commis une erreur, par avance merci de bouger mon sujet, et encore désolé...

Pour venir à mon problème :
J'utilise Doxygen 1.5.8 et je rencontre deux problèmes majeur :
Le premier, c'est que certaines fonctions, ou méthodes, mêmes commentées correctement ne sont pas référencées j'ai compté, manuellement, ce qui pour moi est un défaut, 238 méthodes référencés par Doxygen, contre près de 300 en brute, c'est-à-dire codées. Ce qui représente une perte de 6 objets environs...

Mon second problème vient du fait que tout mes commentaires, de fonctions (méthodes) ou de variables (attributs) me sont signalés comme non documentés dans les logs, même ceux qui ont été documentés via ZDE 5.5

Exemple :
.../sql.class.php:217: Warning: argument 'const' of command @param is not found in the argument list of TPDOStatement::fetchAll($parametre=PDO::FETCH_ASSOC)
La partie concernée :
    /**
     * Récupère l'ensemble des lignes de résultat
     *
     * @param const $parametre paramètre de fetch
     * @return array
     */
    
    public function fetchAll($parametre = PDO::FETCH_ASSOC)
    {
Les "/**" étant sur la ligne 217

J'aimerais donc savoir si ce problème vient de mon code ou de Doxygen ?
Et si possible, comment le résoudre...

Par avance merci de votre aide

PS : Cette fonction est bien référencée...

Posté : 25 févr. 2009, 16:52
par Hywan
Hey :-),

Je pense que ça vient du fait que tu n'utilises pas le « langage » que Doxygen comprend (à savoir principalement celui de la JavaDoc). Et ici, le mot-clé const n'est pas un type. Tu dois utiliser un type : integer, float, string, array etc. Note : c'est très pauvre, i.e. peu expressif, mais bon …

Posté : 25 févr. 2009, 17:21
par katagoto
Merci de votre réponse,

J'ai fais un s&r pour const => integer ; int => integer ; bool => boolean ; str => string
Mais, ça ne change rien, j'ai toujours les mêmes erreurs et le même nombre de fonctions

Par avance merci de votre aide

Posté : 25 févr. 2009, 18:09
par Hywan
Tu me vouvoies maintenant :-P ?
On pourrait voir un bout de code qui ne fonctionne pas s'il te plaît :-) ?

Posté : 25 févr. 2009, 18:29
par katagoto
Désolé, l'habitude...

Alors, l'erreur :
/sql.class.php:217: Warning: The following parameters of TPDOStatement::fetchAll($parametre=PDO::FETCH_ASSOC) are not documented:
parameter 'parametre'
    /**
     * Récupère l'ensemble des lignes de résultat
     *
     * @param integer $parametre paramètre de fetch
     * @return array
     */
    
    public function fetchAll($parametre = PDO::FETCH_ASSOC)
    {
Voilà, je précise que j'ai encodé mes scripts en UFT-8, au cas ou ça puisse aider au diagnostique...

Par avance merci de votre aide

Posté : 25 févr. 2009, 18:52
par Hywan
Et si tu enlèves la ligne blanche entre le commentaire et la méthode ?

Posté : 25 févr. 2009, 20:16
par katagoto
Toujours pareil, mais le pire, c'est que ça me la référence quand même...

Tu n'as jamais eu ce problème ?

Posté : 25 févr. 2009, 21:30
par Hywan
A priori, non … Y a pas loin de 2400 fonctions/méthodes dans Hoa, donc je ne me suis pas amusé à compter …

On peut avoir un peu plus de code (un autre exemple) ?

Posté : 26 févr. 2009, 08:32
par katagoto
Pas de problème (j'ai mis toute la liste là) :
/libs/sujet.class.php:271: Warning: argument 'integer' of command @param is not found in the argument list of sujet::change_grade($pk_sujet,$grade)
/libs/sujet.class.php:271: Warning: argument 'integer' of command @param is not found in the argument list of sujet::change_grade($pk_sujet,$grade)
/libs/sujet.class.php:271: Warning: The following parameters of sujet::change_grade($pk_sujet,$grade) are not documented:
parameter 'pk_sujet'
parameter 'grade'
/libs/sujet.class.php:239: Warning: argument 'integer' of command @param is not found in the argument list of sujet::deplace($pk_sujet,$fk_forum)
/libs/sujet.class.php:239: Warning: argument 'integer' of command @param is not found in the argument list of sujet::deplace($pk_sujet,$fk_forum)
/libs/sujet.class.php:239: Warning: The following parameters of sujet::deplace($pk_sujet,$fk_forum) are not documented:
parameter 'pk_sujet'
parameter 'fk_forum'
/libs/sujet.class.php:101: Warning: argument 'integer' of command @param is not found in the argument list of sujet::edite($pk_sujet,$titre,$sous_titre,$message)
/libs/sujet.class.php:101: Warning: argument 'string' of command @param is not found in the argument list of sujet::edite($pk_sujet,$titre,$sous_titre,$message)
/libs/sujet.class.php:101: Warning: argument 'string' of command @param is not found in the argument list of sujet::edite($pk_sujet,$titre,$sous_titre,$message)
/libs/sujet.class.php:101: Warning: argument 'string' of command @param is not found in the argument list of sujet::edite($pk_sujet,$titre,$sous_titre,$message)
/libs/sujet.class.php:101: Warning: The following parameters of sujet::edite($pk_sujet,$titre,$sous_titre,$message) are not documented:
parameter 'pk_sujet'
parameter 'titre'
parameter 'sous_titre'
parameter 'message'
/libs/sujet.class.php:215: Warning: argument 'integer' of command @param is not found in the argument list of sujet::ferme($pk_sujet)
/libs/sujet.class.php:215: Warning: The following parameters of sujet::ferme($pk_sujet) are not documented:
parameter 'pk_sujet'
/libs/sujet.class.php:141: Warning: argument 'integer' of command @param is not found in the argument list of sujet::fils_arianne($pk_forum)
/libs/sujet.class.php:141: Warning: The following parameters of sujet::fils_arianne($pk_forum) are not documented:
parameter 'pk_forum'
/libs/sujet.class.php:55: Warning: argument 'integer' of command @param is not found in the argument list of sujet::liste($fk_forum,$debut,$nombre)
/libs/sujet.class.php:55: Warning: argument 'integer' of command @param is not found in the argument list of sujet::liste($fk_forum,$debut,$nombre)
/libs/sujet.class.php:55: Warning: argument 'integer' of command @param is not found in the argument list of sujet::liste($fk_forum,$debut,$nombre)
/libs/sujet.class.php:55: Warning: The following parameters of sujet::liste($fk_forum,$debut,$nombre) are not documented:
parameter 'fk_forum'
parameter 'debut'
parameter 'nombre'
/libs/sujet.class.php:11: Warning: argument 'integer' of command @param is not found in the argument list of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade)
/libs/sujet.class.php:11: Warning: argument 'string' of command @param is not found in the argument list of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade)
/libs/sujet.class.php:11: Warning: argument 'string' of command @param is not found in the argument list of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade)
/libs/sujet.class.php:11: Warning: argument 'string' of command @param is not found in the argument list of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade)
/libs/sujet.class.php:11: Warning: argument 'integer' of command @param is not found in the argument list of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade)
/libs/sujet.class.php:11: Warning: The following parameters of sujet::nouveau($fk_forum,$titre,$sous_titre,$message,$grade) are not documented:
parameter 'fk_forum'
parameter 'titre'
parameter 'sous_titre'
parameter 'message'
parameter 'grade'
/libs/sujet.class.php:227: Warning: argument 'integer' of command @param is not found in the argument list of sujet::reouvre($pk_sujet)
/libs/sujet.class.php:227: WarnGenerating docs for compound TPDO...
<?php

/**
 * Class de gestion des sujets
 * 
 * @author Katagoto
 */

abstract class sujet
{
    /**
     * Ouvre un nouveau sujet
     *
     * @param integer $fk_forum id du forum
     * @param string $titre titre du sujet
     * @param string $sous_titre sous_titre du sujet
     * @param string $message contenu du message
     * @param integer $grade
     * @return integer
     */
    
    public static function nouveau($fk_forum, $titre, $sous_titre, $message, $grade)
    {
        global $session, $connexion, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                sujet_nouveau(
                                                    :fk_membre,
                                                    :date,
                                                    :titre,
                                                    :sous_titre,
                                                    :message,
                                                    :fk_forum,
                                                    :fk_communaute,
                                                    :droit,
                                                    :droit,
                                                    :grade);')
                            ->execute(array(
                                                ':fk_group' => (integer)PK_GROUP,
                                                ':fk_membre' => (integer)$session->id,
                                                ':date' => (integer)time(),
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...'],
                                                ':fk_forum' => (integer)$fk_forum,
                                                ':titre' => Base::html($titre),
                                                ':sous_titre' => Base::html($sous_titre),
                                                ':message' => Base::html($message),
                                                ':grade' => (integer)($grade<3 && $grade>=0 ? $grade : 0)
                                            ))
                            ->fetch(PDO::FETCH_OBJ)
                            ->fk_sujet;
    }
    
    
    /**
     * Liste les sujets d'un forum
     *
     * @param integer $fk_forum id du forum
     * @param integer $debut début de la lecture
     * @param integer $nombre nombre de forums par page
     * @return array
     */
    
    public static function liste($fk_forum, $debut, $nombre)
    {
        global $session, $connexion, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                forum_r_sujets.*,
                                                forum_r_messages.date_post,
                                                reponse.pseudo AS pseudo_dernier_posteur,
                                                maitre.pseudo AS pseudo_maitre_sujet
                                                lecture_r_forums_com.dernier_lu,
                                                lecture_r_forums_com.poste
                                        FROM
                                                forum_r_sujets,
                                                forum_r_messages,
                                                membre_t_membre AS reponse,
                                                membre_t_membre AS maitre
                                        LEFT OUTER JOIN
                                                lecture_r_forums_com
                                                ON(lecture_r_forums_com.fk_entite=forum_r_sujets.pk_sujet
                                                AND lecture_r_forums_com.fk_membre=:fk_membre)
                                        WHERE
                                                    forum_r_sujets.fk_forum=:fk_forum
                                                AND forum_r_sujets.etat<2
                                                AND forum_r_messages.pk_message=forum_r_sujets.dernier_message
                                                AND reponse.pk_membre=forum_r_messages.fk_membre
                                                AND maitre.pk_membre=forum_r_sujets.fk_membre
                                        ORDER BY forum_r_sujets.grade, forum_r_sujets.date_post
                                        LIMIT '.(integer)$debut.' OFFSET '.(integer)$nombre)
                            ->execute(array(
                                                ':fk_forum' => (integer)$fk_forum,
                                                ':fk_membre' => (integer)$session->id,
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...']
                                            ))
                            ->fetchAll();
    }
    
    /**
     * Edite un sujet
     *
     * @param integer $pk_sujet id du sujet
     * @param string $titre titre du sujet
     * @param string $sous_titre sous titre du sujet
     * @param string $message nouveau message
     * @return boolean
     */
    
    public static function edite($pk_sujet, $titre, $sous_titre, $message)
    {
        global $connexion, $session, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                sujet_edite(
                                                    :pk_sujet,
                                                    :fk_membre,
                                                    :fk_group,
                                                    :date,
                                                    :titre
                                                    :sous_titre,
                                                    :message
                                                    :droit,
                                                    :droit);')
                            ->execute(array(
                                                ':fk_forum' => (integer)$fk_forum,
                                                ':fk_membre' => (integer)$session->id,
                                                ':fk_group'  => (integer)PK_GROUP,
                                                ':date' => (integer)time(),
                                                ':titre' => Base::html($titre),
                                                ':sous_titre' => Base::html($sous_titre),
                                                ':message' => Base::html($message),
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...']
                                            ))
                            ->fetch(PDO::FETCH_OBJ)
                            ->retour;
    }
    
    /**
     * Retourne le fils d'arriane d'un forum
     *
     * @param integer $pk_forum id du forum
     * @return array
     */
    
    public static function fils_arianne($pk_forum)
    {
        global $connexion, $droit;
        return $connexion   ->prepare(' SELECT
                                                forum_r_forums.nom AS forum_nom,
                                                forum_r_forums.pk_forum AS forum_id,
                                                forum_r_categorie.nom AS categorie_nom,
                                                forum_r_categorie.pk_categorie AS categorie_id
                                        FROM
                                                forum_r_forums,
                                                forum_r_categorie
                                        WHERE
                                                    forum_r_forums.pk_forum=:pk_forum
                                                AND forum_r_forums.etat=1
                                                AND forum_r_categorie.pk_categorie=forum_r_forums.fk_categorie
                                                AND forum_r_forums.etat=1
                                                AND forum_r_forums.grade<=:droit;
                                    ')
                            ->execute(array(
                                                ':fk_group' => (integer)PK_GROUP,
                                                ':pk_forum' => (integer)$pk_forum,
                                                ':droit' => $droit['...']
                                            ))
                            ->fetch(PDO::FETCH_ASSOC);
    }
    
    /**
     * Change l'état d'un sujet
     *
     * @param integer $pk_sujet id du sujet à fermer
     * @param integer $etat nouvel etat du sujet
     * @return boolean
     */
    
    private static function change_etat($pk_sujet, $etat)
    {
        global $session, $connexion, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                sujet_ferme(
                                                    :pk_sujet,
                                                    :fk_group,
                                                    :etat
                                                    :droit,
                                                    :droit);')
                            ->execute(array(
                                                ':fk_group' => (integer)PK_GROUP,
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...'],
                                                ':etat' => (integer)$etat
                                            ))
                            ->fetch(PDO::FETCH_OBJ)
                            ->retour;
    }
    
    /**
     * Supprime un sujet (le ferme et la rend invisible)
     *
     * @param integer $pk_sujet id du sujet
     * @return boolean
     */
    
    public static function supprime($pk_sujet)
    {
        return self::change_etat((integer)$pk_sujet, 2);
    }
    
    /**
     * Ferme un sujet
     *
     * @param integer $pk_sujet
     * @return boolean
     */
    
    public static function ferme($pk_sujet)
    {
        return self::change_etat((integer)$pk_sujet, 0);
    }
    
    /**
     * Réouvre un sujet
     *
     * @param integer $pk_sujet
     * @return boolean
     */
    
    public static function reouvre($pk_sujet)
    {
        return self::change_etat((integer)$pk_sujet, 1);
    }

    /**
     * Déplace un sujet dans un autre forum
     *
     * @param integer $pk_sujet
     * @param integer $fk_forum
     * @return boolean
     */
    
    public static function deplace($pk_sujet, $fk_forum)
    {

        global $session, $connexion, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                sujet_deplace(
                                                    :pk_sujet,
                                                    :fk_forum,
                                                    :fk_group,
                                                    :droit,
                                                    :droit);')
                            ->execute(array(
                                                ':fk_group' => (integer)PK_GROUP,
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...'],
                                                ':pk_sujet' => (integer)$pk_sujet,
                                                ':fk_forum' => (integer)$fk_forum
                                            ))
                            ->fetch(PDO::FETCH_OBJ)
                            ->retour;
    }

    
    /**
     * Change le grade d'un sujet (annonce, post-it, normal) 
     *
     * @param integer $pk_sujet id su sujet
     * @param integer $grade nouveau grade
     * @return boolean
     */
    
    public static function change_grade($pk_sujet, $grade)
    {

        global $session, $connexion, $droit;
        
        return $connexion   ->prepare(' SELECT
                                                sujet_change_grade(
                                                    :pk_sujet,
                                                    :grade,
                                                    :fk_group,
                                                    :droit,
                                                    :droit);')
                            ->execute(array(
                                                ':fk_group' => (integer)PK_GROUP,
                                                ':pk_sujet' => (integer)$pk_sujet,
                                                ':grade' => (integer)($grade<3 && $grade>=0 ? $grade : 0),
                                                ':droit' => (integer)$droit['...'],
                                                ':droit' => (integer)$droit['...']
                                            ))
                            ->fetch(PDO::FETCH_OBJ)
                            ->retour;
    }
    
}
Voilà

Posté : 26 févr. 2009, 11:57
par Hywan
Uè mais tu n'as pas enlevé la ligne entre le commentaire et la méthode …
// Bieeeen :-) !
/**
 * Hop
 */
public function …

// Pas bieeeeen :-( !
/**
 *
 */

public function …
C'est con, je sais, mais bon …

Posté : 26 févr. 2009, 20:50
par katagoto
C'est con et ça marche pas :roll:
Je les enlèves et j'ai encore l'erreur, mais le plus bizarre, c'est que ça me le référence...

PS : si non, j'ai rien dit, pour le bug qu'il ne référençait pas certaines page : c'est normale, elle sont pas commentée...

Posté : 26 févr. 2009, 21:02
par Hywan
Tu peux faire voir une méthode qui est prise en compte et une qui ne l'est pas s'il te plaît :-) ?

Posté : 26 févr. 2009, 21:04
par katagoto
Pris en compte dans quelle sens, car, toutes les méthodes commentés sont prise en compte mais une erreur est signalée...

Posté : 26 févr. 2009, 21:08
par Hywan
T'as essayé avec une version inférieure de Doxygen ?
Et si tout est commenté et que c'est bien traité, pourquoi faire attention aux erreurs :roll: ?

Posté : 27 févr. 2009, 08:31
par katagoto
J'ai essayé la 1.5.7, même problème, c'est d'ailleurs pour ça que je suis à la 1.5.8...

Tu n'as pas tors, je dirais le faites que suis curieux, mais, je vais arrêté de chercher, tant qu'il ne fait que me le signaler...

Merci beaucoup