Convenios de codificación de Drupal
- Área: Codificación y construcción en Drupal
- Tipo de pauta: Directriz
- Carácter de la pauta: Obligatoria
- Tecnologías: PHP
Estándar de codificación de Drupal
La comunidad Drupal ha considerado necesario la introducción de una serie de estándares que faciliten la legibilidad y estructuración del desarrollo de código para Drupal. A continuación se van a ofrecer una serie de indicaciones para la codificación php en Drupal.
Pautas
Título | Carácter |
---|---|
Etiquetas de apertura y cierre en PHP | Obligatoria |
Etiqueta de cierre al final del código de los archivos | Obligatoria |
Sangría de lineas | Obligatoria |
Estructuras de Control | Obligatoria |
Llamadas a función | Obligatoria |
Declaración de funciones | Obligatoria |
Operadores | Obligatoria |
Casting | Obligatoria |
Longitud de líneas | Obligatoria |
Manejo del array | Obligatoria |
Llamadas al método constructor de la clase | Obligatoria |
Concatenación de cadenas | Obligatoria |
Punto y coma | Obligatoria |
Definición de constantes | Obligatoria |
Nomenclatura de clases y métodos | Obligatoria |
Definición de nombres de archivos | Obligatoria |
Etiquetas de apertura y cierre en PHP
Etiqueta de cierre al final del código de los archivos
No utilizar la etiqueta de cierre ?> al final del código de los archivos
La etiqueta de cierre, ?> no es necesaria y no se usa en el código Drupal
Nota: a partir de Drupal 4.7, el “?>” al final del código de los archivos, es omitido deliberadamente.
Las razones para esto se pueden resumir como:
- Elimina la posibilidad de espacios en blanco indeseados al final de los archivos, lo cual puede causar errores "header already sent" (cabecera ya enviada), problemas de validación XHTML/XML y otros problemas.
- El delimitador de cierre al final de un archivo es opcional
- PHP.net elimina por sí mismo el delimitador de cierre al final de sus archivos (ejemplo:prepend.inc), por lo que puede ser visto como una “buena práctica”.
Sangría de lineas
Usar una sangría de dos espacios, sin tabulaciones
El código debe tener dos espacios en blanco para la sangría, que no sean tabulaciones.
Estructuras de Control
Las estructuras de control deben mantener un espacio simple entre la palabra clave
Las estructuras de control son instrucciones que controlan el flujo de la ejecución de un programa.
- Las instrucciones condicionales son if, else, elseif y switch
- Para el control de bucles tenemos while, do-while, for y foreach.
Las estructuras de control deben mantener un espacio simple entre la palabra clave (if, while, etc.) y el paréntesis de apertura que visualmente los distingue de las llamadas a una función. La llave de apertura debe de estar en la misma línea que la palabra clave.
Llamadas a función
No existirán espacios en blanco entre el nombre de la función y el paréntesis de apertura de la función
En las llamadas a funciones debe existir un espacio simple con el operador (=,<,>,etc...) y no existir espacios entre el nombre de la función y el paréntesis de apertura de la función.
Tampoco hay espacio entre el paréntesis de apertura y el primer parámetro. Los parámetros se separan con una coma y un espacio.
Declaración de funciones
Listar los parámetros por defecto de las funciones
No debe de existir espacios entre el nombre de la función y el paréntesis de apertura. Cuando escriba una función que utilice valores por defecto para algunos parámetros, liste estos parámetros.
Las funciones deben ser nombradas usando minúsculas y las palabras deben ser separadas utilizando un guión bajo. Las funciones deben tener además el nombre del grupo/módulo como prefijo, para evitar el conflicto de nombres entre los módulos.
Operadores
Colocar un espacio en blanco antes y después de cada operador binario
Todos los operadores binarios (operadores que están entre dos valores), como +. -, +=, !=, ==,> etc. Deben tener un espacio antes y después del operador, para facilitar la lectura.
Casting
Colocar un espacio entre el (tipo) y la $variable en una transformación
Colocar un espacio entre el (tipo) y la $variable en una transformación. Por ejemplo, (int) $mynumber
Longitud de líneas
Las líneas de código no deben tener más de 80 caracteres
- La longitud de la líneas de código no debe superar los 80 caracteres.
- Las líneas que contengan nombres largos de funciones, definiciones de función/clase, declaraciones de variable, etc pueden superar los 80 caracteres.
- Las condiciones de las estructuras de control pueden exceder los 80 caracteres, si es que son simples de leer y entender. Las condiciones no deben ser encapsuladas en líneas múltiples. En cambio, es una práctica recomendada dividir y preparar las condiciones por separado, lo cual también permite documentar las razones subyacentes de las condiciones
Manejo del array
Cada elemento del array debe moverse a su propia línea si el bloque del array tiene más de 80 caracteres
Los arrays están formateados con espacios separados para cada elemento y cada operador de asignación.
Si el bloque de un array tiene más de 80 caracteres, es una buena práctica para facilitar la legibilidad y mantenibilidad, mover cada elemento a su propia línea.
Llamadas al método constructor de la clase
Incluir siempre los paréntesis cuando se llama a una clase constructora sin argumentos
Cuando se llame a una clase constructora sin argumentos, siempre incluya los paréntesis:
Tenga en cuenta que si el nombre de la clase es una variable, la variable primero deberá ser evaluada para obtener el nombre de la clase, y después el constructor deberá ser llamado. Use la misma sintaxis.
Concatenación de cadenas
Utilizar un espacio entre el punto y las partes concatenadas
Siempre use un espacio entre el punto y las partes concatenadas para mejorar la legibilidad.
Cuando concatena variables simples, puede usar comillas dobles y agregar la variable dentro, en otro caso, use comillas simples.
Cuando use el operador de “concatenación-asignación” (‘.=’), use un espacio en cada lado como en el operador de asignación
Punto y coma
Utilizar siempre el punto y coma (;) al final de cada línea, incluso de los bloques de código
El lenguaje PHP requiere puntos y comas al final de la mayoría de las líneas, pero permite ser omitidos al final de bloques de código. Los Estándares de programación de Drupal los requieren, incluso al final de bloques de código.
Definición de constantes
Escribir las constantes en mayúsculas
Las constantes deben de escribirse en letras mayúsculas, con separadores entre cada palabra.
Nomenclatura de clases y métodos
Utilizar "CamelCase" para nombrar las clases
Las clases deben ser nombradas usando "CamelCase."
Los métodos y propiedades de clases deben usar "lowerCamelCase"
Definición de nombres de archivos
Todos los archivos de documentación deben tener en el nombre la extensión
Todos los archivos de documentación deben tener en el nombre la extensión “.txt” para hacer más fácil su lectura en sistemas Windows. Además los nombres para este tipo de archivos deben ser todo en mayúsculas. Ejemplos: README.txt, INSTALL.txt, TODO.txt, CHANGELOG.txt etc.
Contenidos relacionados
Código | Título | Tipo | Carácter |
---|---|---|---|
RECU-0620 | Estándar de codificación en Drupal | Referencia | Obligatorio |