Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
programming:php-and-doxygen [2014/07/15 10:47] Giuseppe Di Terlizziprogramming:php-and-doxygen [2014/07/15 11:07] (current) Giuseppe Di Terlizzi
Line 11: Line 11:
 Grazie all'utilizzo di particolari "comandi" inseriti nel codice sorgente, permette di creare una documentazione accurata del nostro codice con tanto di grafici (grazie a **Graphviz**) di relazioni tra classi e strutture. Grazie all'utilizzo di particolari "comandi" inseriti nel codice sorgente, permette di creare una documentazione accurata del nostro codice con tanto di grafici (grazie a **Graphviz**) di relazioni tra classi e strutture.
  
-==== Un esempio ====+ 
 +==== Esempio di codice commentato ====
  
 Di seguito un esempio di classe che utilizza alcuni dei comandi di **Doxygen**. Di seguito un esempio di classe che utilizza alcuni dei comandi di **Doxygen**.
Line 56: Line 57:
 } }
 </code> </code>
 +
  
 ==== Comandi più utilizzati ==== ==== Comandi più utilizzati ====
Line 101: Line 103:
  */</code> |  */</code> |
 | ''@since <versione-del-codice>'' | Indica da quale vesione esiste una determinata funzione o metodo | ::: | | ''@since <versione-del-codice>'' | Indica da quale vesione esiste una determinata funzione o metodo | ::: |
 +
  
 ==== Documentiamo ==== ==== Documentiamo ====
Line 112: Line 115:
 Successivamente è necessario personalizzare la configurazione appena prodotto in base ai nostri gusti. In particolare dobbiamo specificare il nome del progetto (''PROJECT_NAME''), la directory contenente il nostro codice (''INPUT_DIR''), la directory dove salveremo la documentazione (''OUTPUT_DIR''), il linguaggio di programmazione (es ''OPTIMIZE_FOR_C''). Successivamente è necessario personalizzare la configurazione appena prodotto in base ai nostri gusti. In particolare dobbiamo specificare il nome del progetto (''PROJECT_NAME''), la directory contenente il nostro codice (''INPUT_DIR''), la directory dove salveremo la documentazione (''OUTPUT_DIR''), il linguaggio di programmazione (es ''OPTIMIZE_FOR_C'').
  
-<div info round center 80%>Per chi non vuole sporcarsi le mani tra le centinaia di flagDoxgen mette a disposizione una GUI che facilita questo compito.+<div info round center 80%>Per chi non vuole sporcarsi le mani tra le centinaia di opzioni disponibiliDoxygen mette a disposizione una GUI che facilita questo compito.
  
   $ doxywizard <config-file>   $ doxywizard <config-file>
Line 120: Line 123:
  
   $ doxygen <config-file>   $ doxygen <config-file>
 +
 +  
 +==== Configurazioni utili per codice in PHP ====
 +
 +Per documentare il nostro codice PHP è necessario utilizzare l'opzione ''OPTIMIZE_FOR_C'':
 +
 +  OPTIMIZE_FOR_C = YES
 +
 +Grazie all'opzione ''INPUT_FILTER'' andremo a corregge un piccolo problema relativo al comando ''@var''.
 +
 +  INPUT_FILTER = php php_var_filter.php
 +
 +Scarichiamo il file qui sotto e lo copiamo nella stessa directory del file di configurazione di Doxygen:
 +
 +<file .php php_var_filter.php>
 +/**
 + * FIX "@var" annotation for Doxygen
 + *
 + * @fixme  static property
 + * @see  http://stackoverflow.com/a/8472180
 + * @see  https://bugzilla.gnome.org/show_bug.cgi?id=626105
 + */
 +
 +$source = file_get_contents($argv[1]);
 +
 +$regexp = '#\@var\s+([^\s]+)([^/]+)/\s+(var|public|protected|private)\s+(\$[^\s;=]+)#';
 +$replac = '${2} */ ${3} ${1} ${4}';
 +$source = preg_replace($regexp, $replac, $source);
 +
 +echo $source;
 +</file>
 +
 +Come output consiglio l'HTML in quanto permette la navigazione ipertestuale oltre alla possibilità di utilizzare il motore di ricerca interno per ricercare una funzione o metodo specifico.
 +
 +  GENERATE_HTML = YES
  
 ===== Per maggiori informazioni ===== ===== Per maggiori informazioni =====
  • programming/php-and-doxygen.txt
  • Last modified: 10 years ago
  • (external edit)