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 '&lttable border="0" cellspacing="5" cellpadding="5"&gt';
        }
        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.
?>