Estandares de Codificacion para PHP

Escrito en April 3, 2008 – 6:47 pm | por Titux | 171 views

Esta es una guia que estoy utilizando para llegar a un desarrollo mas limpio y entendible en mis proyectos y en los proyectos de la empresa donde trabajo, estoy tomando como base la documentacion de PEAR y alli le meto mis agregados. La dejo aqui por si a alguien mas le sirve, las sugerencias son bienvenidas.

Sangrías y Longitud de línea

Usar una sangría de 4 espacios sin usar la tecla “tab”. Esto ayuda a evitar problemas con diffs, patches, historia del CVS y anotaciones.

Estructuras de Control

Estas incluyen: if, for, while, switch, etc. Aquí esta el ejemplo de la postura de “if”, porque es el mas complicado de todas ellas.

PHP:
  1. <?php
  2. if ((condition1) || (condition2)) {
  3.     action1;
  4. } elseif ((condition3) && (condition4)) {
  5.    action2;
  6. } else {
  7.    defaultaction;
  8. }
  9. ?>

Los estatutos de control deben de tener un espacio entre la palabra clave de control y el inicio de paréntesis “(“, para distinguirlos de las llamadas de función.

Deben de utilizarse las llaves en cualquier caso “{ }”, incluso en situaciones donde son técnicamente opcionales. Su uso incrementa su capacidad de lectura y reduce la probabilidad de errores lógicos que son introducidos cuando líneas nuevas se agregan.

Para estructuras switch:

PHP:
  1. <?php
  2. switch (condition) {
  3.     case 1:
  4.         action1;
  5.         break;
  6.     case 2:
  7.         action2;
  8.         break;
  9.     default:
  10.         defaultaction;
  11.         break;
  12. }
  13. ?>

Llamadas de Función

Las funciones deberá de ser llamadas sin espacios entre el nombre de la función, el abrir paréntesis y el primer parámetro; espacios entre comas y cada parámetro, y sin espacios entre el ultimo parámetro, el cierra paréntesis y punto y coma.
Ejemplo:

PHP:
  1. <?php
  2. $var = foo($bar, $baz, $quux);
  3. ?>

Como se muestra aquí arriba, deberá de haber un espacio en ambos lados del signo de igual que se usa para asignar el valor de regreso de una función a una variable. En el caso de un bloque de asignaturas relacionadas, mas espacio puede ser agregado para así, promover su facilidad de lectura.

PHP:
  1. <?php
  2. $short           = foo($bar);
  3. $long_variable = foo($baz);
  4. ?>

Definiciones de Función

En las declaraciones de función, el bracket de apertura empieza al final de la linea de definición despues de un espacio.

PHP:
  1. <?php
  2. function foo_function($arg1, $arg2 = 'x') {
  3.     if (condition) {
  4.         statement;
  5.     }
  6.     return $val;
  7. }
  8. ?>

Los argumentos con valores por default van al final de la lista de argumentos. Siempre tratando de regresar un valor significativo de una función, si una es la apropiada. Un ejemplo más largo:

PHP:
  1. <?php
  2. function connect(&$dsn, $persistent = false) {
  3.     if (is_array($dsn)) {
  4.         $dsninfo = &$dsn;
  5.     } else {
  6.         $dsninfo = DB::parseDSN($dsn);
  7.     }
  8.     if (!$dsninfo || !$dsninfo['phptype']) {
  9.         return $this->raiseError();
  10.     }
  11.     return true;
  12. }
  13. ?>

Inclusión de Código

En cualquier parte que estés incondicionalmente incluyendo una archivo de una clase, usa required_once. En cualquier parte donde estés condicionalmente incluyendo una archivo de clase (por ejemplo, métodos de fabrica) usa include_once. Cualquiera de esas se asegurará que la class file sea incluida únicamente una vez. Ellas comparten la misma lista de archivo (file list) así que no hay necesidad de preocuparse por mezclarlas, un archivo incluido con required_once no será nuevamente incluido por include_once.

Convención de Nombres de Variables, Funciones, Clases

Variables:

Estas deberán nombrarse con un prefijo de tres letras el cual define el tipo de dato de la misma, seguido de un guión bajo y el nombre descriptivo de la variable. Ejemplo:

PHP:
  1. $txt_descripcion:  Campo tipo text
  2. $chr_nombres:  Campo tipo char o varchar
  3. $int_cantidad:  Campo tipo integer
  4. $flt_total:  Campo tipo float
  5. $dbl_precio :  Campo tipo double
  6. $dtm_fecha:  Campo tipo fecha
  7. $bol_activo:  Campo tipo boolean

Funciones:

Estas deberán nombrarse con palabras minúsculas seguido de un guión bajo, para separar palabras en el nombre de la misma. Ejemplo:

PHP:
  1. <?php
  2. function conectar_db($arg1, $arg2 = 'x') {
  3.     if (condition) {
  4.         statement;
  5.     }
  6.     return $val;
  7. }
  8. ?>

Clases:

Estas deberán nombrarse con la primer palabra iniciando con minúscula y separando las demás palabras con letra mayúscula. Ejemplo:

PHP:
  1. <?php
  2. class  CodigosPostales  {
  3.     function foo($arg1) {
  4.         statement;
  5.     }
  6. }
  7. ?>

Entradas Relacionadas

Post a Comment

Acerca De

Alterbrain - Tecnologia, Programacion Web, MySQL, Diseño, Tips, Noticias y Mas.

Buscar Post :