Вы находитесь на странице: 1из 5

El estilo de programación propuesto para la comunidad de desarrolladores de Open Populi pretende

servir como guía de referencia para todos los programadores que intervengan en el proyecto. El uso
de un estilo predeterminado ayuda a leer y entender el código fuente desarrollado en PHP5 y puede
además servir de ayuda para prevenir fallos y detectar con facilidad errores de programación.

Cumplimiento del nivel de error E_STRICT

A partir de la versión 5, PHP incorpora un nuevo nivel de errores denominado E_STRICT. Todo el
código desarrollado para el proyecto Open Populi deberá cumplir este nivel, que muestra mensajes
de error en tiempo de ejecución orientados a mejorar la calidad del código y a evitar el uso de
funciones y métodos que van a desaparecer en breve del lenguaje (deprecated).

Etiquetas PHP

Siempre debe utilizarse la etiqueta completa <?php ?> para contener el código PHP, en lugar de las
abreviadas <? ?> que pueden entrar en conflicto con XML y otros lenguajes. No se aconseja el uso
de las etiquetas estilo ASP <% %>.

<?php

/* Contenido del fichero ... */

?>

Elección de nombres de variable apropiados

La elección de nombres de variable poco adecuados dificulta enormemente la comprensión del


código fuente. Los nombres de variables deben ser cortos y significativos. Para elegir un nombre de
variable el criterio debe ser mnemotécnico, es decir, pensado para que un lector casual al verla
comprenda su uso (por ejemplo $saldoFinal, $domicilio, $fecha_alta, en lugar de $sf, $dom, $falta).
Se deben evitar las variables de una sola letra, excepto en variables temporales de corto uso.

Los nombres de las variables deben estar formados por caracteres alfanuméricos y el guión bajo (a-z,
0-9 y _). Un nombre de variable no debe contener espacios. Si un nombre de variable contiene más
de una palabra, estas deben ser separadas usando un guión bajo ($direccion_externa). Debe evitarse
el uso de la capitalización ($direccionExterna) en el nombre de las variables y reservarla para la
definición de funciones y clases.

Elección de nombres de funciones y clases

La denominación de funciones y clases sigue básicamente la misma regla aplicable a la elección de


nombres de variable apropiados. Los nombres de las funciones y clases deben estar formados por
caracteres alfanuméricos (a-z, 0-9). Un nombre de función o clase no debe contener espacios. Si es
necesario que el nombre contenga más de una palabra, estas deben ser separadas usando la
capitalización (nombreDeFuncion).

Guía de estilo Open Populi para el desarrollo de aplicaciones en PHP5 - v1.00 - 21/04/08 - Página 1 de 5
Para la definición de clases se usarán mayúsculas para la primera letra del nombre de la clase,
diferenciándolas de esta forma de los nombres de funciones (NombreDeClase).

Espaciado y longitud de línea

Se debe utilizar un indentado de cuatro espacios, sin utilizar tabuladores. Esto permitirá evitar
problemas en la ejecución de diffs, patches, anotaciones, etc. ya que la representación del tabulador
depende directamente del entorno de edición. Se recomienda mantener la longitud de la línea
inferior o igual a ochenta caracteres para facilitar la legibilidad del código y la impresión del mismo.

Estructuras de control

Las estructuras de control hacen referencia a construcciones tipo if, while, for, switch, etc. Se muestra
a continuación un ejemplo de la sentencia ‘if’ por ser la más complicada.

if ((condicion1) || (condicion2)) {
accion1;
} elseif ((condicion3) && (condicion4)) {
accion2;
} else {
accion3;
}

Las estructuras de control deberán contener un espacio en blanco entre la palabra clave (if, while,
for, switch, etc.) y el primer paréntesis, para diferenciarlas de las funciones.

Se aconseja el uso de corchetes en todas las situaciones, incluso cuando no sea realmente necesario
hacerlo desde el punto de vista técnico. Esta práctica incrementa la legibilidad del código y disminuye
la probabilidad de cometer errores cuando se agregan nuevas líneas de código.

switch (condicion1) {
case 1:
accion1;
break;
case 2:
accion2;
break;
default:
accion3;
break;
}

Llamada a funciones

La llamada a las funciones debe realizar sin incluir ningún espacio en blanco entre el nombre de la
función, la apertura de paréntesis y el primer parámetro. Se agregarán espacios tras las comas a
continuación de todos los parámetros utilizados en la llamada a la función, y se concluirá con el
cierre de paréntesis inmediatamente después del último parámetro, seguido por el punto y coma.

$variable = funcion($parametro1, $parametro2, $parametro3);

Guía de estilo Open Populi para el desarrollo de aplicaciones en PHP5 - v1.00 - 21/04/08 - Página 2 de 5
Tal y como se muestra en el ejemplo anterior, se añadirá un espacio en blanco antes y después del
símbolo de igualdad utilizado para asignar el resultado de la ejecución de una función a una
variable. Pueden agregarse espacios en blanco adicionales (nunca tabuladores) para mejorar la
legibilidad de asignaciones relacionadas entre ellas y agrupadas en bloques.

$variable = nombreDeFuncion($parametro1, $parametro2);


$variable_larga = nombreDeFuncion($parametro3, $parametro4);

Definición de funciones y clases

La definición de funciones y clases se llevará a cabo siguiendo las recomendaciones anteriores


referentes a la denominación de las mismas. Las funciones deberán incluir los parámetros con valores
por defecto al final de la lista de argumentos.

function nombreDeFuncion($argumento1, $argumento2, $argumento3 = false) {

if ($argumento3) {
$valor = funcionExterna($argumento1, $argumento2);
} else {
$valor = true;
}
return($valor);

La definición de clases utilizará el mismo esquema:

class NombreDeClase() {

Comentarios en el código

Para documentar el código se evitará el uso de los tags #, usando en su lugar bloques delimitados
por /* */. Se incluirá un bloque de cabecera en cada fichero .php con el siguiente formato:

/*

Breve descripción del contenido del paquete, módulo o clase

Descripción ampliada del contenido del paquete, módulo o clase, que puede extenderse a lo
largo de varias líneas e incluir todo tipo de detalles sobre el contenido

@categoria Paquete / Modulo / Clase


@paquete Nombre del paquete, módulo o clase
@autor Autor original del paquete <email@dominio.com>
@version 1.00
@creacion dd/mm/aa (Fecha de creación del paquete, módulo o clase)
@cambio dd/mm/aa (Fecha de la última modificación)

*/

Guía de estilo Open Populi para el desarrollo de aplicaciones en PHP5 - v1.00 - 21/04/08 - Página 3 de 5
La inclusión de comentarios en la definición de funciones y clases permitirá documentar
automáticamente las aplicaciones desarrolladas. Para documentar funciones se usará este esquema:

/*

Breve descripción del contenido y propósito de la función

Descripción ampliada del contenido y propósito de la función, que puede extenderse a lo


largo de varias líneas e incluir todo tipo de detalles sobre la misma.

@parametro Nombre del primer parámetro y tipo y función del mismo


@parametro Nombre del segundo parámetro y tipo y función del mismo
@devuelve Tipo de dato devuelto por la función

*/

Uso de comillas en el texto

PHP permite la utilización de comillas simples (‘) y dobles (“) para delimitar cadenas de texto. Los
textos contenidos en comillas simples se procesan directamente, pero los incluidos en comillas dobles
sufren un proceso de análisis para determinar si contienen nombres de variables que deben
convertirse en su correspondiente valor antes de mostrar la cadena de texto.

$variable1 = ‘Contenido de la primera variable’;


$variable2 = ‘Contenido de la segunda variable’;
$variable3 = “Las variables contienen : $variable1 - $variable2”;

Uso de paréntesis y precedencia de operadores

En la documentación de PHP está disponible la precedencia de operadores (lógicos, aritméticos, de


comparación, de cadena, etc.) pero por lo general no es fácil recordarla en su totalidad. Por ello es
preferible agrupar las operaciones con paréntesis para facilitar la lectura del código sin necesidad de
de tener en mente las tablas de precedencia de operadores.

$resultado = (($variable1 + $variable2) * $variable3);

Operadores abreviados

PHP permite el uso de operadores de una forma abreviada para facilitar la programación. Esta
ventaja no debe utilizarse de forma que perjudique a la legibilidad del código. Por ejemplo, el uso de
los operadores de incremento unitario (++) y decremento unitario (--) no deberá introducirse en el
interior de líneas de código más complejas. En el siguiente ejemplo se ve un caso de uso incorrecto.

/* Uso incorrecto de operadores abreviados de incremento y decremento unitario */

$array[$contador++] = $variablePrincipal;
$array[--$contador] = $variableSecundaria;

Guía de estilo Open Populi para el desarrollo de aplicaciones en PHP5 - v1.00 - 21/04/08 - Página 4 de 5
El mismo código que aparece en el ejemplo anterior deberá codificarse de esta forma para facilitar la
legibilidad del mismo y disminuir la probabilidad de cometer errores:

/* Uso correcto de incremento y decremento unitario */

$array[$contador] = $variablePrincipal;
$contador++;

--$contador;
$array[$contador] = $variableSecundaria;

Optimización de código en bucles

Las operaciones que se realicen con parámetros constantes deberán mantenerse siempre fuera de los
bucles en los que intervenga el resultado. De esta forma si es necesario calcular, por ejemplo, el
tamaño de un array para realizar un bucle sobre todos sus resultados, se realizará el cálculo del
tamaño antes de entrar en el bucle, almacenando el resultado en una variable que será la que se
utilizará para controlar el número de iteraciones a realizar. De esta forma se evita tener que
recalcular de nuevo el tamaño del array (que no cambiará durante la ejecución del bucle).

/* Situación incorrecta del cálculo de la longitud del array */

for ($contador=0; $contador<sizeof($arrayDatos); $contador++) {


...
}

/* Situación correcta del cálculo de la longitud del array */

$longitud = sizeof($arrayDatos);
for ($contador=0; $contador<$longitud; $contador++) {
...
}

Guía de estilo Open Populi para el desarrollo de aplicaciones en PHP5 - v1.00 - 21/04/08 - Página 5 de 5

Вам также может понравиться