25
Estándar de codificación

Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Embed Size (px)

Citation preview

Page 1: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Estándar de codificación

Page 2: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Tabla de contenidos

Indenting and Line Length

Control Structures

Function Calls

Class Definitions

Function Definitions

Variables

Strings

Arrays

Comments

Including Code

PHP Code Tags

Header Comment Blocks

Files

Referencias

Page 3: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Indenting and Line Length

Se utilizan 4 espacios sin etiquetas (tabs)

Ejemplo:

function prueba()

{

$primera=1;

$segunda=2;

$tercera=3;

echo $primera+$segunda+$tercera;

}

Page 4: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Control Structures

if, for, while, switch, etc

Ejemplo:

-IF

if ((condition1) || (condition2)) {    action1;

} elseif ((condition3) && (condition4)) {    action2;

} else {    defaultaction;

}

Page 5: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Control Structures

Cuando el renglón de condiciones es grande se recomienda , separar cada condición en un renglón

if (($condition1    || $condition2)    && $condition3    && $condition4) {    //code here}

IF recortado

$a = $condition1 && $condition2 ? $foo : $bar;

Page 6: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Control Structures

CASE

switch ($condition) {

case 1:

$action1;

break;

 

case 2:

$action2;

break;

 

default:

$defaultaction;

break;

}

Page 7: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Function Calls

Las funciones se deben de llamar sin espacios entre el nombre de la función, el paréntesis de apertura, y el primer parámetro, debe de haber un espacio entre cada parámetro, y ningún espacio entre el último parámetro, el paréntesis de cierre, y el punto y coma

Ejemplo 1 :

$var = foo($bar, $baz, $quux);

Page 8: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Function Calls

Ejemplo 2:

$short         = foo($bar);

$long_variable = foo($baz);

 

Ejemplo 3:

$this->callSomeFunction('param1',     'second',        true);

$this->callSomeFunction('parameter2', 'third',         false);

$this->callSomeFunction('3',          'verrrrrrylong', true);

Page 9: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Function Calls

El estándar de codificación admite 80 caracteres como máximo por línea, el llamado de la función seria así:

$this->someObject->subObject->callThisFunctionWithALongName(    $parameterOne, $parameterTwo,    $aVeryLongParameterThree);

Page 10: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Class Definitions

Si el nombre de la clase se compone de varias palabras, la primer letra de cada palabra debe estar en mayúscula, se puede utilizar guión bajo para separar

Declaraciones de clase tienen su llave de apertura en una nueva línea, es necesario poner comentarios acerca de la clase

Page 11: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Class Definitions

Ejemplo

/**

* clase de prueba

*

* @category CategoryName

* @package PackageName

* @author Original Author <[email protected]>

* @license http://www.php.net/license/3_01.txt PHP License 3.01

* @link http://www.google.com

*

*/

class Foo_Bar

{

 

//... code goes here

 

}

Page 12: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Function Definitions

Los nombres de las funciones sólo pueden contener caracteres alfanuméricos. No se permiten los guiones bajos (_) y no se recomiendan los números

Los nombres deben ser descriptivos de su propósito y comportamiento.

En la OOP, los métodos de acceso a las variables estáticas o instancias, deben ser precedidos por las palabras "get" o "set".

Page 13: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Function Definitions

Ejemplo

/**

* prueba funcion de prueba()

*

* @return 0

*/

function prueba()

{

$primera=1;

$segunda=2;

$tercera=3;

echo $primera+$segunda+$tercera;

}

Page 14: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Variables

Los nombres de las variables deben contener caracteres alfanuméricos. No se permiten los guiones bajos (_) y no se recomiendan los números.

Las variables de instancia que se declaran con los modificadores "private" o "protected", deben tener en el primer carácter un guión bajo (_), mientras que las variables declaradas como "public" no pueden iniciar con un guión bajo.

Page 15: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Variables

Los nombres de las variables deben empezar con una letra minúscula.

Los nombres de variables deben ser descriptivos de los datos que el programador almacena en ellas. No se aconsejan nombres de variables como " $i " o " $n " excepto para el contexto de loops o ciclos pequeños.

Page 16: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Constans

Los nombres de las constantes pueden contener caracteres alfanuméricos, guiones bajos (_) y números.

Todas las letras deben estar en mayúscula.

La separación entre palabras debe hacerse usando el guión bajo (_).

Las constantes deben ser definidas como miembros de una clase usando el modificador "const".

No se recomienda definir constantes con alcance global (utilizando la función "define").

Page 17: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Strings

Cuando un string no contiene sustitución de caracteres, debe usar comilla simple como delimitador.

$a = 'Un texto de ejemplo';

Cuando un string contiene apóstrofes, se permite delimitar dicho string con "comillas dobles".

$sql = "SELECT `img` FROM `tweets` where `uid` = '1'";

Page 18: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Arrays

No se permiten los números negativos como índices.

Los índices en arreglos de índices  numéricos, pueden inciar con cualquier valor no negativo, pero no se recomienda que inicien con un valor distinto al 0.

Para mejorar la legibilidad, se debe agregar un espacio después de cada coma de separación de los índices en la declaración del “array”:

$diasArreglo = array(1, 2, 3, 4, 5, 6, 7);

Page 19: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Arrays

Se pueden hacer declaraciones de los arrays en varias líneas, siempre y cuando los inicios estén alineados (identados) igual:

$some_array = array(    'foo'  => 'bar',    'spam' => 'ham');

Page 20: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Comments

Comentarios en una línea

//prueba

Comentarios en bloque

/*

* prueba de comentario

*/

 

Page 21: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Including Code

require y require_once deben de ser utilizados para llamar archivos fuera de funciones o clases al contrario de include e include_once

Page 22: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

PHP Code Tags

Siempre se debe de usar <?php ?>, no se debe de usar el tag corto <? ?>

Page 23: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Header Comment Blocks

/**

* Short description for file

*

* Long description for file (if any)...

*

* PHP version 5

*

* @category CategoryName

* @package PackageName

* @author Original Author <[email protected]>

* @author Another Author <[email protected]>

* @copyright 2011 SoftLogiK

* @license http://www.php.net/license/3_01.txt PHP License 3.01

* @version SVN: 23

* @link http://www.google.com

*/

Page 24: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Files

Los nombres de los archivos sólo pueden contener un caracter alfanumérico, guiones bajos (_). No se permiten espacios en blanco.

Page 25: Estándar de codificación. Tabla de contenidos Indenting and Line Length Control Structures Function Calls Class Definitions Function Definitions Variables

Referencias

PEAR

http://pear.php.net/manual/en/standards.php

Zend Framework Coding Standard for PHP: http://framework.zend.com/manual/en/coding-standard.html