Guia de estilo PHP
August 24th, 2006 Posted in InformaticaTras pasar por varios programadores en la empresa, ver que cada uno hace las cosas como hace o como quiere, y sin el mas minimo control ni porque un compañero suyo pueda leerlo, ni para el que venga detras pueda seguir sobre tu trabajo, yo y mi fiel programador Luismi decidimos hacer una guia de estilo, que actualmente, no tiene estilo.
Es una guia con algunos preceptos basicos, que con el tiempo se ira aumentando, con la finalidad de que todos hagamos las cosas bien, de maneras similares y si una persona se va, poder continuar los proyectos sin problemas ni hacer uso de ingenieria inversa. Solo decir, que algunas cosas de hacen sobre un sistema de programacion propio Necostek Framework, que es un CMS con algunas funciones basicas para aligerar el trabajo.
Bueno, ahi va:
GUIA DE ESTILO rev 23/8/06-02
-
Las funciones se escribirán en minúsculas y si la palabra es compuesta la primera letra de la segunda palabra ira en mayúscula (Ej: getUsersList();), mientras que las variables se escribirán siempre en minúsculas.
-
Las funciones en su apertura deben estar documentadas SIEMPRE así como sus parámetros.
-
Al inicio de cada fichero se incluirá una cabecera con el uso del fichero y para que sirve, autor, versión y fecha.
-
Los nombres deberán ser descriptivos de las variables y funciones.
-
Los nombres de funciones y variables deberán estar escritos en Ingles o Español, en el caso del Español siempre se deben usar los infinitivos de los verbos.
-
En los bucles cortos las variables temporales deben llamarse $i, $j, $k consecutivamente.
-
La identación se deberá hacer obligatoriamente con TAB y nunca con espacios.
-
Las REGISTER_GLOBALS estarán desactivadas por defecto. Es decir que las variables que se pasen de una pagina a otra deberán leerse con $_GET, $_REQUEST o $_POST.
-
Las conexiones de las base de datos deben ser cerradas nada mas acabar de usarlas.
-
Las MAGIC QUOTES estarán desactivadas por defecto. Todas las variables recibidas por $_REQUEST deben ser limpiadas convenientemente.
-
En producción el ERROR_REPORTING estará desactivado.
-
Se prohíbe el uso de la función EVAL().
-
Las clases serán colocadas en un archivo PHP a parte.
-
Si para la tarea concreta que se necesite hacer existe ya una función o método deberá ser utilizado, y si se necesita añadir una funcionalidad extra se modificara la función y se notificara al encargado de proyecto.
-
Respetar al máximo la encapsulacion. Que cuando se defina una variable o función o método se utilice siempre el nivel de seguridad MAXIMO para funcionar. Si algo funciona como protected se pondrá protected en vez de public.
-
Existirán las siguientes carpetas:
-
include/ -> estarán las clases, llamadas nombre.inc.php
-
modules/ -> estarán los módulos, llamados nombre.php
-
admin/ -> los submodulos del panel de administración, llamados adm_nombre.php
-
admin/images/ -> las imágenes del panel de administración.
-
images/ -> las imágenes visibles por los usuarios.
-
themes/ -> los temas, una carpeta con el nombre del tema, el theme.php, el style.css y print.css, incluyendo también las imágenes exclusivas del tema en themes/NOMBRE/images/.
-
blocks/ -> los bloques, el nombre de la clase del bloque debe ser igual al nombre del bloque, ej login.php
-
lang/ -> una carpeta con el country code de 2 caracteres (ejemplo “es”), con el fichero lang.php.
No se permiten chapuzas en el código. Si no sabes hacerlo, pregunta.
