Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ingenieria:estandard-de-codificacion [2014/05/26 17:03] |
ingenieria:estandard-de-codificacion [2016/01/05 23:15] (actual) |
||
---|---|---|---|
Línea 17: | Línea 17: | ||
Las definiciones de clases, propiedades de clase, métodos y funciones deben tener su correspondiente DocBlock de PHPDoc. Los algoritmos complejos deben documentarse con comentarios de una sola línea o de múltiples líneas si se da una explicación general. | Las definiciones de clases, propiedades de clase, métodos y funciones deben tener su correspondiente DocBlock de PHPDoc. Los algoritmos complejos deben documentarse con comentarios de una sola línea o de múltiples líneas si se da una explicación general. | ||
- | <code>/** | + | <code> |
+ | /** | ||
* @param string $prop_slug El slug del campo buscado | * @param string $prop_slug El slug del campo buscado | ||
* @param mixed $prop_value El nuevo valor del campo | * @param mixed $prop_value El nuevo valor del campo | ||
Línea 64: | Línea 65: | ||
return true; | return true; | ||
} | } | ||
- | |||
</file> | </file> | ||
Línea 73: | Línea 73: | ||
$p += $v1 + $arr[0]; // Otro comentario | $p += $v1 + $arr[0]; // Otro comentario | ||
- | |||
</code> | </code> | ||
Línea 119: | Línea 118: | ||
15. $obj = new MiClase(); | 15. $obj = new MiClase(); | ||
16. $obj->f1(5, 6, 7); | 16. $obj->f1(5, 6, 7); | ||
- | |||
</code> | </code> | ||
---- | ---- | ||
- | ===== Alineamientos ===== | + | ===== ''Alineamientos'' ===== |
- | En el caso de un bloque de asignaciones relacionadas se pueden alinear los signos de igualdad (=). | + | ''En el caso de un bloque de asignaciones relacionadas se pueden alinear los signos de igualdad (=) . '' |
- | <code>$short = foo($bar); | + | ''''$short = foo($bar); $long_variable = foo($baz); '' '' |
- | $long_variable = foo($baz); | + | |
- | </code> | + | ''Lo mismo se aplica a las definiciones de arreglos. '' |
- | Lo mismo se aplica a las definiciones de arreglos. | + | ''<code> $some_array = array( '' |
- | <code>$some_array = array( | + | <code> |
- | 'a' => 'foobar', | + | '' 'a' => 'foobar', |
- | 'foo' => 'bar', | + | 'foo' => 'bar', |
- | 'spam' => 'ham', | + | 'spam' => 'ham', |
- | ); | + | |
+ | '' | ||
</code> | </code> | ||
+ | |||
+ | '' '' | ||
+ | |||
+ | ''); '' | ||
Las llamadas a funciones se pueden dividir en varias líneas. Los parámetros se identan 1 nivel respecto a la línea de la función a la que pertenecen. | Las llamadas a funciones se pueden dividir en varias líneas. Los parámetros se identan 1 nivel respecto a la línea de la función a la que pertenecen. | ||
Línea 147: | Línea 148: | ||
Los paréntesis de cierre se escriben en su propia línea identada al nivel de la línea donde fueron abiertos. | Los paréntesis de cierre se escriben en su propia línea identada al nivel de la línea donde fueron abiertos. | ||
- | <code>$this->someObject->subObject->callThisFunctionWithALongName( | + | <code> |
+ | $this->someObject->subObject->callThisFunctionWithALongName( | ||
$parameterOne, $parameterTwo, | $parameterOne, $parameterTwo, | ||
$aVeryLongParameterThree | $aVeryLongParameterThree | ||
); | ); | ||
- | |||
</code> | </code> | ||
Lo mismo es válido para funciones anidadas y definición de arreglos. | Lo mismo es válido para funciones anidadas y definición de arreglos. | ||
- | <code>$this->someObject->subObject->callThisFunctionWithALongName( | + | <code> |
+ | $this->someObject->subObject->callThisFunctionWithALongName( | ||
$this->someOtherFunc( | $this->someOtherFunc( | ||
$this->someEvenOtherFunc( | $this->someEvenOtherFunc( | ||
Línea 170: | Línea 172: | ||
$this->wowowowowow(12) | $this->wowowowowow(12) | ||
); | ); | ||
- | |||
</code> | </code> | ||
- | Las llamadas concatenadas a funciones pueden dividirse en varias líneas, indentando cada línea subsecuente y comenzandola con el operador flecha "->". | + | Las llamadas concatenadas a funciones pueden dividirse en varias líneas, indentando cada línea subsecuente y comenzandola con el operador flecha "→". |
- | <code>$someObject->someFunction("some", "parameter") | + | <code> |
+ | $someObject->someFunction("some", "parameter") | ||
->someOtherFunc(23, 42) | ->someOtherFunc(23, 42) | ||
->andAThirdFunction(); | ->andAThirdFunction(); | ||
- | |||
</code> | </code> | ||
Línea 187: | Línea 188: | ||
Salvo en la definición de una clase, las llaves deben abrir al lado de la estructura a la que petenece, separada por un espacio. | Salvo en la definición de una clase, las llaves deben abrir al lado de la estructura a la que petenece, separada por un espacio. | ||
- | <code>class MiClase | + | <code> |
+ | class MiClase | ||
{ | { | ||
public function f1($p) { | public function f1($p) { | ||
Línea 195: | Línea 197: | ||
} | } | ||
} | } | ||
- | |||
</code> | </code> | ||
Línea 206: | Línea 207: | ||
==== if ==== | ==== if ==== | ||
- | <code>if ((condition1) || (condition2)) { | + | <code> |
+ | if ((condition1) || (condition2)) { | ||
action1; | action1; | ||
} elseif ((condition3) && (condition4)) { | } elseif ((condition3) && (condition4)) { | ||
Línea 213: | Línea 215: | ||
defaultaction; | defaultaction; | ||
} | } | ||
- | |||
</code> | </code> | ||
En el caso de condiciones muy largas o complejas pueden dividirse en varias líneas | En el caso de condiciones muy largas o complejas pueden dividirse en varias líneas | ||
- | <code>if (($condition1 || $condition2) | + | <code> |
+ | if (($condition1 || $condition2) | ||
&& $condition3 | && $condition3 | ||
&& $condition4 | && $condition4 | ||
Línea 224: | Línea 226: | ||
//code here | //code here | ||
} | } | ||
- | |||
</code> | </code> | ||
La 1ra condición puede alinearse al resto | La 1ra condición puede alinearse al resto | ||
- | <code>if ( $condition1 | + | <code> |
+ | if ( $condition1 | ||
&& $condition2 | && $condition2 | ||
&& $condition3 | && $condition3 | ||
Línea 235: | Línea 237: | ||
; | ; | ||
} | } | ||
- | |||
</code> | </code> | ||
Las condiciones también pueden expresarse como variables para hacerlas más legibles | Las condiciones también pueden expresarse como variables para hacerlas más legibles | ||
- | <code>$is_foo = ($condition1 || $condition2); | + | <code> |
+ | $is_foo = ($condition1 || $condition2); | ||
$is_bar = ($condition3 && $condtion4); | $is_bar = ($condition3 && $condtion4); | ||
if ($is_foo && $is_bar) { | if ($is_foo && $is_bar) { | ||
// .... | // .... | ||
} | } | ||
- | |||
</code> | </code> | ||
+ | |||
==== switch ==== | ==== switch ==== | ||
- | <code>switch (condition) { | + | <code> |
+ | switch (condition) { | ||
case 1: | case 1: | ||
action1; | action1; | ||
Línea 262: | Línea 265: | ||
break; | break; | ||
} | } | ||
- | |||
</code> | </code> | ||
+ | |||
==== for ==== | ==== for ==== | ||
- | <code>for ($i = 1; $i <= 10; $i++) { | + | <code> |
+ | for ($i = 1; $i <= 10; $i++) { | ||
print $i; | print $i; | ||
} | } | ||
- | |||
</code> | </code> | ||
+ | |||
==== foreach ==== | ==== foreach ==== | ||
- | <code>foreach ($a as $v) { | + | <code> |
+ | foreach ($a as $v) { | ||
; | ; | ||
} | } | ||
Línea 280: | Línea 285: | ||
; | ; | ||
} | } | ||
+ | </code> | ||
- | </code> | ||
==== while ==== | ==== while ==== | ||
- | <code>while (list(, $value) = each ($arr)) { | + | <code> |
+ | while (list(, $value) = each ($arr)) { | ||
; | ; | ||
} | } | ||
+ | </code> | ||
- | </code> | ||
==== do..while ==== | ==== do..while ==== | ||
- | <code>do { | + | <code> |
+ | do { | ||
; | ; | ||
} while ($condition); | } while ($condition); | ||
- | |||
</code> | </code> | ||
+ | |||
==== Operadores ternarios ==== | ==== Operadores ternarios ==== | ||
- | <code>$a = $condition ? $foo : $bar; | + | <code> |
+ | $a = $condition ? $foo : $bar; | ||
$b = $condition1 && $condition2 | $b = $condition1 && $condition2 | ||
? $foo : $bar; | ? $foo : $bar; | ||
Línea 305: | Línea 313: | ||
? $foo_man_this_is_too_long_what_should_i_do | ? $foo_man_this_is_too_long_what_should_i_do | ||
: $bar; | : $bar; | ||
- | |||
</code> | </code> | ||
Línea 344: | Línea 351: | ||
En el DocBlock, su tipo será null y su descripción comenzará con '(Parámetro de salida) Devuelve'. El bloque de parámetros de salida se separa del resto de los parámetros por una línea en blanco. | En el DocBlock, su tipo será null y su descripción comenzará con '(Parámetro de salida) Devuelve'. El bloque de parámetros de salida se separa del resto de los parámetros por una línea en blanco. | ||
- | <code>/* | + | <code> |
+ | /* | ||
* @param type $param1 ... | * @param type $param1 ... | ||
* @param type $param2 ... | * @param type $param2 ... | ||
Línea 358: | Línea 366: | ||
return $some_value; | return $some_value; | ||
} | } | ||
- | |||
</code> | </code> | ||
+ | |||
==== Parámetros de referencia ==== | ==== Parámetros de referencia ==== | ||
Línea 366: | Línea 374: | ||
Este tipo de parámetro siempre será pasado por referencia, deberá llevar el postfijo '_REF' y se ubicará al final de la lista de parámetros pero antes de cualquier parámetro de salida. En el DocBlock, su descripción comenzará con '(Parámetro de referencia)'. | Este tipo de parámetro siempre será pasado por referencia, deberá llevar el postfijo '_REF' y se ubicará al final de la lista de parámetros pero antes de cualquier parámetro de salida. En el DocBlock, su descripción comenzará con '(Parámetro de referencia)'. | ||
- | <code>/* | + | <code> |
+ | /* | ||
* ... | * ... | ||
* @param type $common_param ... | * @param type $common_param ... | ||
Línea 382: | Línea 391: | ||
return $some_value; | return $some_value; | ||
} | } | ||
- | |||
</code> | </code> | ||
+ | |||
==== Miembros de clase protegidos y privados ==== | ==== Miembros de clase protegidos y privados ==== | ||
Línea 390: | Línea 399: | ||
Se excluyen de esta regla las propiedades protegidas que puedan ser accedidas por métodos accesores (getters, issers, setters). | Se excluyen de esta regla las propiedades protegidas que puedan ser accedidas por métodos accesores (getters, issers, setters). | ||
- | <code>class MiClase | + | <code> |
+ | class MiClase | ||
{ | { | ||
const MAX_VALUE = 500; | const MAX_VALUE = 500; | ||
Línea 415: | Línea 425: | ||
} | } | ||
} | } | ||
- | |||
</code> | </code> | ||
Línea 439: | Línea 448: | ||
* Privados | * Privados | ||
- | <code>class MiClase | + | <code> |
+ | class MiClase | ||
{ | { | ||
const MAX_VALUE = 500; | const MAX_VALUE = 500; | ||
Línea 478: | Línea 488: | ||
} | } | ||
} | } | ||
- | |||
</code> | </code> | ||