Estàndards de codificació - PHP

Les normes de l'estàndard de programació s'apliquen a tot el codi realitzat a mida. Tot el codi nou hauria de procurar fer-se utilitzar les normes vigents de codificació.

1. Sagnia i espais en blanc

Utilitzeu dos espais en blanc per identar el codi, no els tabuladors.

Les línies no han de tenir espais en blanc al final.

Els arxius han de tenir el format \n com el final de línia (finals de línia Unix), no \r\ n (finals de línia de Windows).

Tots els arxius de text han d'acabar en un sol salt de línia (\n).

2. Operadors

Tots els operadors binaris (els operadors que es troben entre dos valors), com +, -, =, =, ==,>, etc han de tenir un espai abans i després de l'operador, per facilitar la lectura. Per exemple:

$foo = $bar; // Correcte
$foo=$bar; // Incorrecte

En els operadors unaris (operadors que operen en un sol valor), com per exemple ++, no ha d'haver un espai entre l'operador i la variable o el nombre que s'opera. Ex: $i++;

3. Casting

Deixar un espai entre el (tipus) i la variable, per exemple: (int) $variable

4. Estructures de control

Les estructures de control inclouen if, for, while, switch, etc.:

if (condition1 || condition2) {
  action1;
}
elseif (condition3 && condition4) {
  action2;
}
else {
  defaultaction;
}

Les sentències de control ha de tenir un espai entre la paraula clau de control i el parèntesi d'obertura, per distingir-les de les crides a funcions.

Es recomana utilitzar sempre claus, fins i tot en situacions en que són tècnicament opcionals. Tenir-les augmenta la llegibilitat i disminueix la probabilitat d'errors de lògica quan s'estan introduint noves línies de codi.

Per a les sentències switch:

switch (condition) {
  case 1:
    action1;
    break;

  case 2:
    action2;
    break;

  default:
    defaultaction;
}

Per estaments do-while:

do {
  actions;
} while ($condition);

5. Crides a funcions

Les Funcions han de ser cridades sense espais entre el nom de la funció, el ​​parèntesi d'obertura, i el primer paràmetre; Amb espais entre les comes i cada paràmetre; I amb cap espai entre l'últim paràmetre, el tancament de parèntesi, i el punt i coma. Heus aquí un exemple:

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

Com es mostra més amunt, ha d'haver un espai a cada costat del signe igual per assignar el valor de retorn d'una funció a una variable. En el cas d'un bloc d'assignacions relacionades, es poden inserir més espais per facilitar-ne la lectura:

$short         = foo($bar);
$long_variable = foo($baz);

6. Declaració de funcions

function funstuff_system($field) {
  $system["description"] = t('Aquest troç insereix un text molt divertit.');
  return $system[$field];
}

Els arguments amb valors per defecte han d'anar al final de la llista d'arguments. Sempre intentem tornar un valor significatiu a partir d'una funció si és apropiat.

7. Construtors de classes

Quan es crida a un constructor de classes sense arguments, sempre s'inclou entre parèntesis:

$foo = new MyClassName();

Això és per mantenir la coherència amb els constructors que tenen arguments:

$foo = new MyClassName($arg1, $arg2);

Tingueu en compte que si el nom de la classe és una variable, la variable s'avalua en primer lloc per obtenir el nom de la classe, i llavors el constructor serà anomenat. Utilitzeu la mateixa sintaxi:

$bar = 'MyClassName';
$foo = new $bar();
$foo = new $bar($arg1, $arg2);

8. Matrius (arrays)

Les matrius han de tenir el format amb un espai separant cada element (després de la coma), i els espais al voltant de l'operador => (clau d'associació), si s'escau:

$some_array = array('hello', 'world', 'foo' => 'bar');

Tingueu en compte que si la línia que declara una sèrie abasta més de 80 caràcters, cada element s'ha de trencar en la seva pròpia línia, i amb sangria a un nivell:

$form['title'] = array(
  '#type' => 'textfield',
  '#title' => t('Title'),
  '#size' => 60,
  '#maxlength' => 128,
  '#description' => t('The title of your node.'),
);

Nota la coma al final de l'últim element de la matriu, això no és un error! Ajuda a prevenir errors d'anàlisi, si un element es col·loca al final de la llista més endavant.

9. Concatenació de cadenes

Utilitzeu sempre un espai entre el punt i les parts concatenats per millorar la llegibilitat.

  $string = 'Foo' . $bar;
  $string = $bar . 'foo';
  $string = bar() . 'foo';
  $string = 'foo' . 'bar';

En concatenar variables simples, pots utilitzar cometes dobles i afegir la variable dins, en cas contrari, utilitzeu cometes simples.

$string = "Foo $bar";

Quan s'utilitza l'operador d'assignació de concatenació ('.='), utilitzar un espai a cada costat com amb l'operador d'assignació:

$string .= 'Foo';
$string .= $bar;
$string .= baz();

10. Tags de PHP

Utilitza sempre
<?php ?>
per delimitar el PHP, mai el format curt
<? ?>

Aquesta és la forma més portàtil per incloure codi PHP en diferents sistemes operatius i configuracions.

Tingueu en compte que el tancament ?> al final dels arxius de codi s'ha omès deliberadament. Les raons d'això es poden resumir en tres punts:

  • Aquesta extracció elimina la possibilitat que els espais en blanc no desitjats en la final dels arxius que poden causar errors tipus "La capçalera ja s'ha enviat", problemes de validació XHTML/XML, i altres problemes.
  • El delimitador de tancament al final d'un arxiu és opcional.
  • En PHP.net s'elimina el delimitador de tancament des del final dels seus arxius (per exemple: prepend.inc), així que això pot ser vist com una "millor pràctica".

11. Punt i coma

El llenguatge PHP requereix punt i coma al final de la majoria de les línies, tot i que es permet ometre al final dels blocs de codi. L'estàndard de codificació ho requereixin, fins i tot al final dels blocs de codi. En particular, per a una línia de blocs de PHP:

<?php print $tax; ?> // Correcte
<?php print $tax ?> // Incorrecte

12. Classes

Les classes han de ser nomenades amb "CamelCase". Per exemple:

abstract class DatabaseConnection extends PDO { ...

Els mètodes de classe i les propietats han d'utilitzar "lowerCamelCase":

public $lastStatement;

L'ús de mètodes de classe i propietats privades s'ha d'evitar si no és estrictament necessari - utilitza protected en el seu lloc, de manera que una altra classe podria estendre la teva classe i canviar el mètode si és necessari. Els mètodes protegits (i públics) no haurien d'utilitzar un sub-guió com a prefix, com era comú en PHP 4.

1
Categories:
Plataforma PHP
1
Grups de treball:
Plataforma PHP