PHP algunas best practices
PHP es uno de los lenguajes más utilizado en la programación web. Esto de un lado se traduce en una comunidad siempre más grande que nos echa una mano, de otro en un número siempre más grande de beginners que ignoran (en el sentido que no conocen) algunas best practices básicas. En parte es lo con que me estoy chocando en esta mi nueva experiencia profesional xD.
Aquí algunos consejos útiles
E_STRICT – 5 errores comunes
Cuando vamos a desarrollar una aplicación en PHP es muy importante configurar de manera correcta el error_reporting para analizar los errores mensajes de nuestra aplicación.
Desde la versión 5 se incluyó un nuevo nivel denominado E_STRICT. Según la definición de php.net:
En PHP 5 está disponible el nuevo nivel de error E_STRICT [...] Habilitar E_STRICT durante el desarrollo tiene algunos beneficios. Los mensajes STRICT le ayudarán a usar el último y más sugerente método de codificación, por ejemplo le advertirá del uso de funciones obsoletas.
Con la inclusión de E_STRICT en el E_ALL en PHP 5.4 no tendremos escusas para no mirar estos mensajes.
PHP refactoring
Cada aplicación en continuo crecimiento necesita modificaciones para que sea más rápida, para reorganizarla o para prepararnos a nuevos desarrollos a medio o largo plazo.
Este proceso se llama Refactoring, palabra que mucha gente odia porque necesita recursos para algo que no es ni un producto completo ni una release. Entonces es natural que vuestro Product Owner no lo vea favorablemente. Aunque en continua lucha para el Time To Market los desarrolladores deberían prestar la debida atención a esta fase ya que se podría llegar a la clásica situación de entrada en pérdida en la que para modificar el código spaghetti que hemos generado tiene un coste mayor que refactorizarlo.
Entonces cuáles son las lineas guías para un buen Refactogin? Buscamosles juntos...
Interface vs. Abstract class en PHP
Interface y Abrastract class son conceptos de la OOP poco usados en PHP. Los motivos son principalmente dos:
- requisitos poco claros (o idas poco claras por parte del desarrollador) en la fase de diseño
- poco conocimiento de estos conceptos
Entonces intentamos aclararlos.
Namespaces en PHP 5.3
Hasta hace un par de semanas desconocía que fuera posible en PHP (>=5.3) hacer algo similar a lo que se hace en Java con los packages.
El problema que se nos presenta es lo de las name collitions o sea de la confusión que se puede producir hablando de dos cosas distintas que tienen el mismo nombre. En el caso de PHP se podría producir sobrescribiendo nombres de clases, funciones y constantes.
La solución en PHP es tan sencilla cuanto genial y se llama namespaces. Además si se utiliza en la nueva versión de Zend Framework (2.0) será algo bueno ![]()
PHP Output Buffering Control
Cuando después de una petición el servidor envía el html al cliente, éste no se devuelve de una única vez sino a trozos.
¿Podemos hacer algo para controlarlo? La respuesta está en el Output Buffering Control de PHP.
La idea es muy sencilla:
Guardar el output en una variable y devolverla de una única vez.