Especificación para la documentación del código fuente en PHP de los proyectos de la FDQ.

Página creada Tezano Casasus
 
SEGUIR LEYENDO
Especificación para la documentación del código fuente en PHP de los proyectos de la FDQ.
CODIGO: 1
                     Especificación para la documentación del
                                                                  EDICIÓN: 1,0
                    código fuente en PHP de los proyectos de la
                                                                  FECHA:    24/07/2007
                                         FDQ.
                                                                  PAGINA:   1/11

      Especificación para la documentación del código
          fuente en PHP de los proyectos de la FDQ.

              ELABORO:                    REVISÓ:                 APROBÓ:
RESPONSABLE   Jorge Iván Meza Martínez
                                          Grupo de Sistemas       Grupo de Sistemas
CODIGO: 1
                           Especificación para la documentación del
                                                                        EDICIÓN: 1,0
                          código fuente en PHP de los proyectos de la
                                                                        FECHA:       24/07/2007
                                              FDQ.
                                                                        PAGINA:      2/11

     CARGO                                     Consultores de
                    Consultor Sistemas                                  Consultores de Sistemas
                                               Sistemas
     FECHA                                     24/07/2007
                    24/07/2007                                          24/07/2007

1.     Introducción.

El presente documento especifica la sintaxis básica de los comentarios requeridos para
generar la documentación técnica del código de un proyecto PHP basado en la
herramienta phpDocumentor desarrollada para tal fin. Se especifican también los
formatos o plantillas específicos para documentar las diferentes entidades
computacionales en el código fuente de los proyectos desarrollados por la Empresa.

Respecto a la herramienta elegida para generar la documentación se especifican los
pasos requeridos para su instalación y su ejecución sobre proyectos web específicos a
documentarse.

2.  Especificación        general        de     los     documentos          compatibles           con
phpDocumentor.

2.1.   Los comentarios de documentación se enmarcan en la siguiente disposición.

       /**
        *
        */

Cualquier linea de comentario que no empiece por el carácter asterisco ('*') es ignorada.

2.2.   Un bloque de comentarios consta de la siguiente estructura.

       /**
        * Descripción corta (1 línea).
        *
        * Descripción larga (múltiples líneas).
        *
        * Etiquetas.
        */

Los párrafos de la descripción larga pueden separarse con etiquetas .

Otras etiquetas que pueden ser utilizadas son las relacionadas a continuación.

                Énfasis.
CODIGO: 1
                          Especificación para la documentación del
                                                                       EDICIÓN: 1,0
                         código fuente en PHP de los proyectos de la
                                                                       FECHA:    24/07/2007
                                            FDQ.
                                                                       PAGINA:   3/11

             Código fuente.
               Salto de línea.
                Itálica.
              Entrada por teclado/pantalla.
               Elemento de lista.
               Lista ordenada.
              Mantiene la información contenida tal cual está formateada.
             Denota ejemplo.
               Lista no ordenada.
              Nombre de variable.

2.3.  El comentario que documenta una estructura se debe ubicar justo antes de la
declaración de dicha entidad.

Los elementos susceptibles de ser documentados obedecen a la siguiente lista.

Sentencias define[_once].
Sentencias include[_once].
Funciones.
Clases.
Métodos y atributos.
Variables globales.

Existe una estructura adicional que puede ser documentada y es el archivo de código.
Un bloque de documentación hace referencia al archivo y no a un elemento específico si
se cumple alguna de las siguientes condiciones.

   1. Si el primer bloque de documentación en el archivo de código incluye la etiqueta
      @package y no se encuentra sucedido por un elemento class.
   2. Si el primer bloque de documentación en el archivo de código antecede a otro
      bloque documentación.

2.4.   Es posible definir listas simples con líneas de comentarios que empiezan por “-”,
“+”, “#” ú   “o” y listas ordenadas que empiezan por índices seguidos por punto y
separadas por un espacio.

Es posible crear listas complejas utilizando las etiquetas /.

       /**
        * DocBlock with nested lists
        * in the tag descriptions
        * @todo My Simple TODO List
        *     - item 1
CODIGO: 1
                          Especificación para la documentación del
                                                                       EDICIÓN: 1,0
                         código fuente en PHP de los proyectos de la
                                                                       FECHA:    24/07/2007
                                            FDQ.
                                                                       PAGINA:   4/11

        *     - item 2
        *     - item 3
        * @todo My Complex TODO List
        *     
        *       item 1.0
        *       item 2.0
        *       item 3.0
        *         
        *           item 3.1
        *           item 3.2
        *         
        *       item 4.0
        *     
        */

2.5.  Las etiquetas son opcionales y proporcionan información adicional acerca de la
entidad     documentada.

Las etiquetas constan de una palabra que las identifica precedida por el símbolo de
arroba ('@'). Cada una de las etiquetas tiene su propia lista de parámetros que se
referencia a continuación.

       @abstract
       Especifica que una clase, un método o una variable son abstractos.

       @access public|private|protected
       Determina el nivel de acceso del elemento. Si el nivel de acceso es privado no se
       incluirá en la documentación.

       @category nombre
       Especifica la categoría a la cual pertence la entidad documentada dentro del
       paquete.

       @author nombre []
       Autor del elemento documentado.

       @copyright información
       Información de derechos de autor (copyright).

       @deprecated información
       Determina que el elemento es obsoleto y no debería utilizarse ya que puede ser
       retirado en el futuro cercano.

       @example ruta/archivo descripción
       Incluye un archivo de ejemplo externo con sintaxis resaltada.
CODIGO: 1
                    Especificación para la documentación del
                                                                 EDICIÓN: 1,0
                   código fuente en PHP de los proyectos de la
                                                                 FECHA:    24/07/2007
                                      FDQ.
                                                                 PAGINA:   5/11

@final
Determina que el elemento es final y por lo tanto no puede ser sobreescrito o crear
subclases de él.

@global tipo_de_datos $nombre_de_variable (para globales/atributos)
@global tipo_retorno descripción                 (para funciones/métodos)
Documenta una variable global o su uso en funciones y métodos.

@ignore
Evita que se realice la documentación del elemento.

@internal información_no_publicable
Especifica información que no se incluye en la documentación pública.

@license URL nombre
Muestra un hiperenlace en la documentación que referencia la licencia utilizada.

@link URL [texto]
Despliega un hiperenlace en la documentación.

@package nombre
Especifica el paquete que agrupa de manera documental las clases y funciones
especificadas.

@param tipo_de_datos $nombre_de_variable descripción
@param tipo1|tipo2|... $nombre_de_variable descripción
Describe un parámetro de un método o función.

@return tipo_de_datos descripción
@return tipo1|tipo2|... descripción
Describe el tipo de retorno de un método o función.

@see archivo|nombre_elemento|clase::método()|clase::$variable|
función()
Muestra un enlace que referencia la documentación de otros elementos.

@since información de versión o de fecha
Documenta cuando/en que versión se agregó el elemento.

@static
Especifica que el método o atributo son estáticos (de clase).

@staticvar tipo_de_datos $nombre descripción
Especifica el uso de una variable estática en un método o función.
CODIGO: 1
                        Especificación para la documentación del
                                                                     EDICIÓN: 1,0
                       código fuente en PHP de los proyectos de la
                                                                     FECHA:    24/07/2007
                                          FDQ.
                                                                     PAGINA:   6/11

     @subpackage nombre_sub_paquete
     Especifica el subpaquete en el que se ubican las clases o métodos definidas.
     Requiere de la etiqueta @package.

     @throws información_de_excepciones
     Especifica las posibles excepciones lanzadas por la función o método actual.

     @todo información
     Documenta cambios que serán realizados en el futuro.

     @uses archivo|nombre_elemento|clase::método()|clase::$variable|
     función()
     Muestra un enlace a la documentación de otro elemento y crea un enlace de
     regreso en la documentación del elemento referenciado.

     @var tipo_de_datos descripción
     Documenta el tipo de datos de un atributo.

     @version información_de_versión
     Versión del elemento actual.

3.   Especificación práctica.

/**
 * Documentación de archivo de la clase Empleado.
 *
 * Esta es la documentación general del archivo de código fuente, contiene
 * información general relativa a los elementos contenidos en este archivo
 * toda vez que puede contener clases, funciones y variables globales por
 * separado, sin embargo se recomienda utilizar siempre clases (orientación a
 * objetos), minimizar el uso de variables globales y crear un archivo fuente
 * por cada clase implementada.
 *
 * @package Proyecto.Modelo.Ejemplo.Usuarios
 */

/**
 * Incluye la implementación de la clase Persona requerida por la clase Empleado
 */

include_once("../lib/classes/Persona.class.php");

/**
 * Almacena la información de los empleados activos de la empresa.
 */
CODIGO: 1
                            Especificación para la documentación del
                                                                         EDICIÓN: 1,0
                           código fuente en PHP de los proyectos de la
                                                                         FECHA:    24/07/2007
                                              FDQ.
                                                                         PAGINA:   7/11

$empleados = array();

/**
 * Crear empleados de ejemplo para la empresa.
 *
 * Crea una cantidad \$c de empleados de ejemplo con información por defecto
 * para realizar la demostración del uso del sistema.
 *
 * @package   Proyecto.Modelo.Ejemplo.Usuarios
 * @author    Jorge Iván Meza Martínez 
 * @copyright Todos los derechos reservados. FDQ. 2007.
 * @global    Array $empleados
 * @internal Esta información no se incluirá en la documentación por ser
 *            ultra secreta.
 * @param     Integer $c Cantidad de empleados a crearse.
 * @return    Float Retorna la sumatoria de los salarios de los empleados
 *            creados.
 * @see       Empleado
 * @since     Versión 1.0, revisión 20070725.
 * @version   1.0
 */

function crearEmpleados($c)
{
  global $empleados;

    $salarioMensual = 0;

    for($i=0; $i
CODIGO: 1
                          Especificación para la documentación del
                                                                       EDICIÓN: 1,0
                         código fuente en PHP de los proyectos de la
                                                                       FECHA:    24/07/2007
                                            FDQ.
                                                                       PAGINA:   8/11

* @todo         Implementar los métodos faltantes.
* @version      1.0
*/

final class Empleado extends Persona
{
  /**
   * Código del Empleado
   *
   * @access protected
   * @since   Versión 1.0, revisión 20070725.
   * @var     String Código del empleado.
   */

  protected $codigo;

  /**
   * Salario del Empleado
   *
   * @access private
   * @since   Versión 1.0, revisión 20070725.
   * @var     Float Salario del empleado.
   */

  private $salario;

  /**
   * Fecha de   vinculación.
   *
   * @access    protected
   * @since     Versión 1.0, revisión 20070725.
   * @var       Date Fecha de vinculación del empleado en la empresa
   *            (aaaa/mm/dd).
   */

  protected $fechaVinculacion;

  /**
   * Constructor de la clase Empleado.
   *
   * Crea una instancia de la clase Empleado con el Código y Salario
   * especificados y la fecha actual como Fecha de Vinculación.
   *
   * @package   Proyecto.Modelo.Ejemplo.Usuarios
   * @access    public
   * @author    Jorge Iván Meza Martínez 
   * @author    Pepito Pimentón 
   * @internal El valor de la fecha de vinculación es asignado por defecto
   *            según la norma ISO-666.
   * @param     String $codigo Código del Empleado.
   * @param     Float $salario Salario del Empleado.
   * @since     Versión 1.0, revisión 20070725.
CODIGO: 1
                            Especificación para la documentación del
                                                                         EDICIÓN: 1,0
                           código fuente en PHP de los proyectos de la
                                                                         FECHA:    24/07/2007
                                              FDQ.
                                                                         PAGINA:   9/11

     * @version     2.0
     */

    public function __construct($codigo, $salario)
    {
      $this -> codigo = $codigo;
      $this -> salario = $salario;
      $this -> fechaVinculacion = date("m\/d\/Y");
    }

    /**
     * Retorna el   salario del Empleado.
     *
     * @package     Proyecto.Modelo.Ejemplo.Usuarios
     * @access      public
     * @author      Jorge Iván Meza Martínez 
     * @return      Float Salario del Empleado.
     */

    public function obtSalario()
    {
      return $this -> salario;
    }
}

4.     Generación de la documentación.

4.1. Instalación.
Descargue el archivo comprimido con la distribución de http://sourceforge.net/projects/
phpdocu/.

Descomprima el contenido de la distribución en un directorio de su elección (ejemplo: D:\
www\PhpDocumentor-1.4.0).

Cree el archivo documentar.bat en un directorio incluido en su PATH con la siguiente
especificación.

SET   PHP_CLI=C:\dev\xampp\php\php.exe
SET   PHP_INI=C:\dev\xampp\apache\bin\php.ini
SET   DOCUMENTOR_PATH="D:\www\PhpDocumentor-1.4.0"
SET   TIPO=HTML

%PHP_CLI% "-c %PHP_INI%" "%DOCUMENTOR_PATH%\phpdoc" -t %2 -o %TIPO
%:frames:default -d %1 --title %3 --parseprivate %4 --quiet
CODIGO: 1
                          Especificación para la documentación del
                                                                       EDICIÓN: 1,0
                         código fuente en PHP de los proyectos de la
                                                                       FECHA:    24/07/2007
                                            FDQ.
                                                                       PAGINA:   10/11

Edite el valor de las variables según la ubicación real de los siguientes archivos en su
estación de trabajo.

      PHP_CLI                  Ruta completa al archivo php.exe (CLI).
      PHP_INI                  Ruta completa al archivo php.ini.
      DOCUMENTOR_PATH          Ruta del directorio donde se ubicó la distribución de
                                      phpDocumentator.
      TIPO                     Formato de salida de la documentación.

Los posibles valores de la variable TIPO son HTML, PDF, XML ó CHM según el tipo de formato
en el que se desea generar la documentación.

4.2. Ejecución para generar la documentación.
La sintaxis para la ejecución de documentar.bat es la siguiente.

documentar.bat DIRECTORIO_ORÍGEN DIRECTORIO_DESTINO TÍTULO_DOCUMENTACIÓN TIPO_DOCUMENTACIÓN

A continuación se describen cada uno de los parámetros de línea de comando requeridos.

    DIRECTORIO_ORÍGEN      Ruta completa del directorio donde se encuentran los
     archivos                          fuente a documentar.
    DIRECTORIO_DESTINO     Ruta completa del directorio donde se almacenará la
                                  documentación resultante.
    TÍTULO_DOCUMENTACIÓN Título que se desea aparezca en la documentación.
    TIPO_DOCUMENTACIÓN     on para generar documentación privada (incluye
     elementos                         con el modificador private y el contenido de
     las etiquetas                            @internal) u off para generar
     documentación pública.

Ejemplo:

documentar "D:\www\Ejemplo" "D:\www\Ejemplo\doc" "Documentación de ejemplo" on

La ejecución del comando anterior hace que se genere la documentación de los archivos
ubicados en D:\www\Ejemplo y se almacene en D:\www\Ejemplo\doc, con el título
Documentación de ejemplo e incluyendo información privada.
CODIGO: 1
                             Especificación para la documentación del
                                                                          EDICIÓN: 1,0
                            código fuente en PHP de los proyectos de la
                                                                          FECHA:    24/07/2007
                                               FDQ.
                                                                          PAGINA:   11/11

5.       Enlaces asociados.

        Sitio web de phpDocumentor
         http://www.phpdoc.org/

        Manual de phpDocumentor
         http://manual.phpdoc.org/

        Tutorial de phpDocumentor
         http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tut
         orial_phpDocumentor.pkg.html

        Sitio web de PHP
         http://www.php.net/
También puede leer