Tener buenas practicas a la hora de programar nos puede evitar muchos dolores de cabeza, la mayoria de los programadores se enfocan en el codigo, no en el formato del mismo, yo creo que esto podria ser un error, mejorar nuestras practicas de programación puede traernos muchos beneficios, generamos codigo mas concistente, mejoramos la lectura del mismo y facilitamos la colaboración con otros programadores. Una de las mejores maneras de lograr esto, es mediante el uso de estandars, ya existen muchos, adopten alguno, dentro del documento “Best Practices of PHP Development”de Zend, ellos nos dan un gran tip:
“Don’t invent your own standard. You are not special and your source code is not unique.”
Ademas, el uso de estandares establecidos nos permitira ser mas objetivos a la hora de revisar codigo de otros, nos ayudara a mejorar la reusabilidad de nuestro codigo y tendremos codigo compatible con otros proyectos. Aqui les dejo yo mis recomendaciones, los estandares de codificación que yo uso en mis proyectos, ojala les sirvan:
Convenciones de nombres…
- Clases – Los nombres de las clases deben ser CamelCased, con la inicial en mayuscula. Es una buena practica usar el “estilo PEAR” para manejar la jerarquia de nuestras clases, esto tambien ayuda a ubicar los archivos de forma jerarquica y ordenada.
- Archivos – Solo caracteres alfanumericos, comenzando en mayuscula, los espacios no estan permitidos, puede usarse el estilo PEAR y usar el caracter “_” para separar carpetas, por ejemplo el la clase Foo_Bar estara en Foo/Bar.php.
- Variables, propiedades, funciones y metodos – Estos nombres deberan ser camelCased, con la inicial en minuscula.
- Los metodos llamamdos “Accessors” utilizaran los prefijos set y get, usando la regla anterior, por ejemplo setVar1 y getVar1.
- Constantes – Las constantes de codigo (por ejemplo los generados con #define de C/C++ o define() de PHP deberan estar en MAYUSCULAS.
- Propiedades y metodos privados – Los elementos privados usaran un “guion bajo” al inicio, por ejemplo _nombreVar.
Convenciones de llaves…
- Las funciones y clases deberan tener su llave inicial en la siguiente linea a la declaración y en el mismo nivel de indentación.
- Las estructuras de control siguen la regla anterior, algunas personas recomiendan poner la llave inicial en la misma linea de la estructura, es cuestion de gustos…
- Se recomienda que todas las estructuras de control usen llaves, nada de sentencias inline, yo no sigo mucho esta regla, aunque puede ser recomendable…
Indentación…
- Se recomienda usar solamente espacios no tabs, 4 espacios por nivel de indentación, la mayoria de los editores pueden ser configurados para que conviertan nuestros tabs en espacios ayudandonos a cumplir este requisito.
Valores boleanos y null
- En los lenguajes donde sea indiferente el usar “null”, “false” y “true” con mayusculas o minusculas, siempre seran usados en minusculas.
Metodos y funciones
- Cuando el parámetro de un metodo sea opcional, y no se tenga preferencia sobre algun valor default se debe usar “null” en lugar de “false”.
- Los parámetros deberán estar separados por un espacio en blanco después de cada coma.
Programación orientada a objetos…
- Una sola clase por archivo, y nada de codigo fuera del contexto de la clase.
- Siempre que se declaren métodos o atributos de una clase, se debe especificar explícitamente el nivel de visibulidad que tienen, generalmente se maneja public, private y protected.
Comentarios…
- Trata de comentar tu codigo, de preferencia usa un formato estandar como el de JavaDoc o PHPDoc, existen muchas aplicaciones que pueden hacer uso del mismo.
- Comenta las partes de tu codigo que sean relevantes, evitar poner antes de tu ciclo: “Recorro el arreglo…”, los comentarios son de gran ayuda pero podrian llegar a estorbar si no se usan bien..
Bases de datos…
• Utilizar caracteres alfanuméricos
• Limitar los nombres a menos de 64 caracteres (es una restricción de MySQL).
• Utilizar el guión bajo (_) para separar palabras.
• Utilizar palabras en minúsculas, algunos motores te lo convierten automaticamente.
• Los nombres de las tablas deberían ir en plural y los nombres de las columnas en singular.
• En una tabla, colocar primero la clave primaria seguida de las claves foráneas.
Otros…
• Trate de mantener las lineas con 75-85 caracteres maximo.
• Use alguna aplicación para la administración de projectos como Trac o PHProjekt
• Use alguna aplicación para el seguimiento de errores como Mantis
• Genere pruebas para su codigo, los llamados paquetes Unit pueden ser de gran ayuda
PHP…
- Utilize solamente los tags estandar <?php … ?>, evite usar los tags cortos <? … ?>, debido a el uso masivo de XML estos han quedado fuera de uso, los tags cortos son similares a los encabezados de los XML.
- En archivos que contengan unicamente codigo PHP, el tag de cierre (?>) debe ser omitido, este no es requerido por PHP y el omitirlo previene de tener salidas inesperadas si es que se nos pasa un espacio en blanco o algo despues del tag de cierre.
- Las constantes deben definirse usando “const” en lugar de “define”.
Referencias…
- Object-Oriented Programming with PHP5. Packt – Hasin Hayder.
- Best Practices of PHP Development. Zend – Matthew Weier O’Phinney & Mike Naberezny.

