Volver al índice 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:

La guía de estilo de PEAR no especifica otros aspectos, como el uso de comillas simples o dobles para delimitar cadenas, o el uso de paréntesis. Tan sólo recomienda que se utilice el mismo estilo en todos los ficheros.


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 página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Autor: Bartolomé Sintes Marco
Última modificación: 10 de enero de 2008

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.