Convenciones generales:
- La sangría del código debe usar tabulaciones. En el editor, configura la tecla Tab para que inserte el carácter de tabulación, no espacios. No uses una serie de espacios para sangrar.
- En SVN / Git, la codificación de los archivos nuevos debe ser uniformemente UTF-8 (sin BOM).
- Salto de línea estilo Unix: LF
- Todos los nombres de archivo en las URLs accesibles directamente deben estar en minúsculas; si constan de varias palabras, se unen con guiones bajos.
- Ancho de línea: 120 caracteres
Estándares de código
Ejemplo
<?php // Al inicio debe usarse <?php
// xxx@example.com Cada archivo debe indicar el correo del propietario
require_once('conf/config.inc.php'); // require_once debe llevar paréntesis, y no debe haber espacio antes del paréntesis izquierdo.
class CodingStandard { // Espacio antes de las llaves. Los nombres de clase comienzan con mayúscula; en nombres compuestos, la primera letra de cada palabra en mayúscula.
private $attribute; // Los comentarios de atributos se escriben directamente al final.
// Formato de array
public $color = array(
'1' => 'red', // Usar una tabulación para sangrar
'2' => 'blue',
'3' => 'yellow',
'4' => array(
'1' => 'green', // Después de alinear con las columnas del array anterior, sangrar una vez con tabulación.
'2' => 'gray'
) // El final del array se alinea con el inicio de la variable declarada.
); // El final del array se alinea con el lugar donde se declara la variable del array.
public $number = array(1, 2, 3, 4); // Para arrays simples, se pueden poner en una sola línea.
// Los comentarios de métodos usan doble barra, intenta completarlos en una sola línea.
function foo($i, $list) { // 1. No debe haber espacio antes del paréntesis '(' después del nombre de la función. 2. Con varios parámetros, si hay comas, debe haber un espacio después de cada coma.
for ($j = 0; $j < $i; $j++) { // Agregar espacio después de for
echo "This is no.{$j}, content is {$list[$j]}"; // La sentencia echo no lleva paréntesis.
// En la sentencia echo, usa comillas simples o dobles según la situación real.
echo '<table border="0" cellspacing="5" cellpadding="5">';
}
if ($i > 0) { // 1. Agregar espacio después de if 2. Debe haber espacios antes y después de los operadores.
return $i % 2; // Hay espacios antes y después de los operadores.
} else { // También debe haber espacios antes y después de else.
return null;
}
if ($j == $i) return 1; // Si dentro de if solo hay una sentencia y es corta, se recomienda escribirla en una línea; si se divide en varias líneas, se recomienda encerrarla entre llaves.
$count = count($_SERVER); // Realizar la asignación fuera
if ($count > 10) echo 'pass'; // Dentro de if solo se hacen evaluaciones booleanas; no se deben escribir asignaciones.
}
public static function testFunction() { // Los métodos estáticos y no estáticos siguen el principio CamelCase en su nomenclatura.
}
}
$s = new CodingStandard(); // Al crear un objeto con new, se deben añadir paréntesis.
$s->foo(10, $s->color); // Los paréntesis después de la función no llevan espacios; si la función tiene más de un parámetro, debe haber un espacio después de cada coma.
CodingStandard::testFunction(); // La invocación de código estático tiene una única forma: solo mediante el operador de doble dos puntos (::).
// Los archivos PHP deben terminar con ?>, y asegúrate de que no haya espacios ni líneas en blanco después.
?>
// xxx@example.com Cada archivo debe indicar el correo del propietario
require_once('conf/config.inc.php'); // require_once debe llevar paréntesis, y no debe haber espacio antes del paréntesis izquierdo.
class CodingStandard { // Espacio antes de las llaves. Los nombres de clase comienzan con mayúscula; en nombres compuestos, la primera letra de cada palabra en mayúscula.
private $attribute; // Los comentarios de atributos se escriben directamente al final.
// Formato de array
public $color = array(
'1' => 'red', // Usar una tabulación para sangrar
'2' => 'blue',
'3' => 'yellow',
'4' => array(
'1' => 'green', // Después de alinear con las columnas del array anterior, sangrar una vez con tabulación.
'2' => 'gray'
) // El final del array se alinea con el inicio de la variable declarada.
); // El final del array se alinea con el lugar donde se declara la variable del array.
public $number = array(1, 2, 3, 4); // Para arrays simples, se pueden poner en una sola línea.
// Los comentarios de métodos usan doble barra, intenta completarlos en una sola línea.
function foo($i, $list) { // 1. No debe haber espacio antes del paréntesis '(' después del nombre de la función. 2. Con varios parámetros, si hay comas, debe haber un espacio después de cada coma.
for ($j = 0; $j < $i; $j++) { // Agregar espacio después de for
echo "This is no.{$j}, content is {$list[$j]}"; // La sentencia echo no lleva paréntesis.
// En la sentencia echo, usa comillas simples o dobles según la situación real.
echo '<table border="0" cellspacing="5" cellpadding="5">';
}
if ($i > 0) { // 1. Agregar espacio después de if 2. Debe haber espacios antes y después de los operadores.
return $i % 2; // Hay espacios antes y después de los operadores.
} else { // También debe haber espacios antes y después de else.
return null;
}
if ($j == $i) return 1; // Si dentro de if solo hay una sentencia y es corta, se recomienda escribirla en una línea; si se divide en varias líneas, se recomienda encerrarla entre llaves.
$count = count($_SERVER); // Realizar la asignación fuera
if ($count > 10) echo 'pass'; // Dentro de if solo se hacen evaluaciones booleanas; no se deben escribir asignaciones.
}
public static function testFunction() { // Los métodos estáticos y no estáticos siguen el principio CamelCase en su nomenclatura.
}
}
$s = new CodingStandard(); // Al crear un objeto con new, se deben añadir paréntesis.
$s->foo(10, $s->color); // Los paréntesis después de la función no llevan espacios; si la función tiene más de un parámetro, debe haber un espacio después de cada coma.
CodingStandard::testFunction(); // La invocación de código estático tiene una única forma: solo mediante el operador de doble dos puntos (::).
// Los archivos PHP deben terminar con ?>, y asegúrate de que no haya espacios ni líneas en blanco después.
?>