# Guía de estilo

Por completar

No existe una guía de estilo oficial de cómo formatear un programa PHP, aunque el proyecto PEAR sí que dispone de una guía de estilo oficial, de la que se recogen aquí algunas recomendaciones:

## Indentado

Se debe utilizar un indentado de 4 espacios y no utilizar tabuladores.

Volver al principio de la página

## Longitud de línea

No se deben superar los 75-85 caracteres por línea.

Volver al principio de la página

## Estructuras de control

Las estructuras de control deben tener un espacio entre la palabra reservada y el paréntesis inicial, para distinguirlas de las funciones.

En los bloques de sentencias deben utilizarse siempre llaves, incluso cuando podrían omitirse (por ejemplo, cuando el bloque está formado por una única sentencia).

Ejemplos de esctructuras de control:

    <?php
    if ((condicion1) || (condicion2)) {
        accion1;
    } elseif ((condicion3) && (condicion4)) {
        accion2;
    } else {
        accionpredeterminada;
    }
    ?>

    <?php
    switch (condicion) {
    case 1:
        accion1;
        break;

    case 2:
        accion2;
        break;

    default:
        accionpredeterminada;
        break;
    }
    ?>

Volver al principio de la página

## Llamadas a funciones

No debe haber espacios entre el nombre de la función, el paréntesis inicial y el primer argumento. Debe haber espacios tras las comas que separen argumentos. No debe haber espacios entre el último argumento, el paréntesis final y el punto y coma.

    <?php
    $var = foo($bar, $cel, $ona);
    ?>

Volver al principio de la página

## Definición de funciones

Las funciones deben declararse de acuerdo con el estilo "BSD/Allman":

    <?php
    function fooFuncion($arg1, $arg2 = '')
    {
        if (condicion) {
            sentencia;
        }
        return $val;
    }
    ?>

Los argumentos con valores predeterminados se colocan al final de la lista de argumentos.

Las funciones deben devolver algún valor.

Volver al principio de la página

## Comentarios

Se debe utilizar // o /* ... */ para delimitar los comentarios. No se debe utilizar #.

Volver al principio de la página

## Delimitadores de fragmentos PHP

Los framentos PHP deben delimitarse con <?php ... ?> y no con <? ... ?>.

Volver al principio de la página

## Bloques de comentario iniciales

    <?php
    /**
    * Descripción breve
    *
    * Descripción extensa (opcional)
    *
    * @author Fulanito de Tal <fulanito@example.com>
    * @copyright 2007 Fulanito de Tal
    * @license http://www.fsf.org/licensing/licenses/gpl.txt GPL 2 or later
    * @version 2007-02-06
    * @link http://www.example.org
    */
    ?>

Por completar: mencionar JavaDoc y phpDocumentor.

Volver al principio de la página

## URLs de ejemplo

Las URLs y direcciones de correo de ejemplo deben pertenecer a los dominios example.com, example.org o example.net, de acuerdo con la norma RFC 2606.

Volver al principio de la página

## Nombres de clase, funciones, métodos, constantes y variables globales

Por completar.

Volver al principio de la página

## Formatos de archivo

Los archivos deben guardarse en formato ASCII, utilizar la codificación ISO-8859-1 y utilizar el formato Unix (carácter LF como final de línea y al final de la última línea del archivo).

Volver al principio de la página

## Código E_STRICT

El código no debe generar errores o avisos cuando la directiva error_reporting tiene el valor E_STRICT.

Volver al principio de la página

## Gestión de errores

Por completar.

Volver al principio de la página

## Herramientas

PHP-Beatifier es un paquete PEAR que formatea automáticamente archivos PHP.

PHP_CodeSniffer es un paquete PEAR que detecta errores de formateo en archivos PHP.

phpDocumentor es un paquete PEAR que detecta errores de formateo en archivos PHP.

Volver al principio de la página

Esta obra está bajo una licencia de Creative Commons.