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/20 18:45] |
ingenieria:estandard-de-codificacion [2016/01/05 23:15] (actual) |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | |||
| - | |||
| - | ---- | ||
| - | |||
| - | ---- | ||
| - | |||
| ====== Estandard de Codificación ====== | ====== Estandard de Codificación ====== | ||
| Línea 23: | 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 70: | Línea 65: | ||
| return true; | return true; | ||
| } | } | ||
| - | |||
| </file> | </file> | ||
| Línea 79: | Línea 73: | ||
| $p += $v1 + $arr[0]; // Otro comentario | $p += $v1 + $arr[0]; // Otro comentario | ||
| - | |||
| </code> | </code> | ||
| Línea 125: | 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 153: | 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 176: | 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 193: | 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 201: | Línea 197: | ||
| } | } | ||
| } | } | ||
| - | |||
| </code> | </code> | ||
| Línea 212: | Línea 207: | ||
| ==== if ==== | ==== if ==== | ||
| - | <code>if ((condition1) || (condition2)) { | + | <code> |
| + | if ((condition1) || (condition2)) { | ||
| action1; | action1; | ||
| } elseif ((condition3) && (condition4)) { | } elseif ((condition3) && (condition4)) { | ||
| Línea 219: | 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 230: | 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 241: | 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 268: | 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 286: | 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 311: | 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 350: | 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 364: | Línea 366: | ||
| return $some_value; | return $some_value; | ||
| } | } | ||
| - | |||
| </code> | </code> | ||
| + | |||
| ==== Parámetros de referencia ==== | ==== Parámetros de referencia ==== | ||
| Línea 372: | 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 388: | 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 396: | 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 421: | Línea 425: | ||
| } | } | ||
| } | } | ||
| - | |||
| </code> | </code> | ||
| Línea 445: | Línea 448: | ||
| * Privados | * Privados | ||
| - | <code>class MiClase | + | <code> |
| + | class MiClase | ||
| { | { | ||
| const MAX_VALUE = 500; | const MAX_VALUE = 500; | ||
| Línea 484: | Línea 488: | ||
| } | } | ||
| } | } | ||
| - | |||
| </code> | </code> | ||