Consejos de PHP

PHP tiene bastante mala prensa. En las conferencias no hay ponente que quiera ser cool que no lance su pullita hacia PHP y los phperos. Y lo cierto es que las múltiples atrocidades que los desarrolladores de PHP cometen (cometemos) envalentonados por su flexibilidad y sencillez tienen buena parte de culpa. Sin embargo si lleva tantos años siendo el lenguaje más utilizado para el desarrollo web, por algo será. En las siguientes líneas te daremos algunos trucos, consejos y buenas practicas de PHP para que tu código sea mejor.



Desarrolla con el reporting de errores activado

Uno de los grandes problemas de nosotros los desarrolladores web en general y los phperos en particular es el "pantallazo blanco de la muerte". Un error 500 que no da ninguna información y que puede resultar tremendamente frustrante. Para evitarlo, sin tener que modificar el fichero php.ini, durante la fase de desarrollo tan sólo es necesario incluir las dos siguientes líneas al principio del código:

  1. error_reporting(E_ALL);
  2. ini_set('display_errors', 1);


Esto te permitirá ver tanto los errores fatales que producen el temido pantallazo blanco como warnings o notices que pueden ser bugs a arreglar. Luego, claro está, no se te olvide eliminarlas al subir a producción.


Evita la inyección SQL

Posiblemente una de las causas de la mala prensa de PHP sean los agujeros de seguridad (Cross-Site Scripting, Cross-Site Request Forgeries...) que se te pueden colar en cuanto no seas un poco meticuloso. De todos ellos el más conocido (y el más sencillo de prevenir) es el de la SQL Injection"la inserción de código SQL invasor con el fin de alterar el funcionamiento normal del programa y lograr que se ejecute la porción de código invasor en la base de datos" con funestas consecuencias.

¿Cómo lo evitamos? Hay varias maneras pero la más sencilla es escapando siempre cualquier variable (y no sólo los inputs del usuario) que vayamos a utilizar contra la base de datos. Tal que así:

  1. $query_result = mysql_query("SELECT * FROM ejemplo_tabla WHERE ejemplo_archivo = \"" . mysql_real_escape_string($ex_field) . "\"");





Usa las funciones _once() con precaución

A la hora de llamar a otros ficheros, librerías o clases podemos optar por la función include() o la función require(). La primera da un warning de no encontrar el fichero y sigue la ejecución. La segunda da un error fatal y para la ejecución. Bien, hasta aquí todo claro, PHP 101 de manual.

Sin embargo también tenemos la opción de utilizar las funciones include _ once() y require _ once(), que tienen la misma funcionalidad pero evitan que los ficheros, clases o librerías cargados puedan cargarse de nuevo causando duplicidades y estados no deseados en el código. Esto está genial a priori pero lo consiguen a costa de una disminución de rendimiento bastante notoria. Por lo tanto casi mejor ocuparte tu mismo, siempre que puedas, de evitar estas duplicidades revisando bien el código y todas las llamadas en el mismo.


Artículo Anterior Artículo Siguiente
post ADS 1
post ADS 2