Advertisement
  1. Code
  2. PHP

Más de 30 prácticas recomendadas de PHP para principiantes

Scroll to top
Read Time: 13 min

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

PHP es el lenguaje más utilizado para la programación en la web. Aquí tienes treinta mejores prácticas para principiantes que proporcionan una comprensión más sólida de los fundamentos.

Nota del editor: La serie "Mejores Prácticas" ha sido mi bebé de tres artículos hasta la fecha. Sin embargo, debido a mi enfoque en la serie sobre la integración contínua de vídeo, he decidido pasarle esta próxima entrada a Glen. Dicho esto, ¡no soy muy bueno manteniendo la boca cerrada! Pensé que sería divertido añadir esporádicamente algunas refutaciones a estos consejos. ¡Espero que no le importe!

1. Hazte amigo del Manual php

Si eres nuevo en PHP, es hora de que te familiarices con la genialidad del manual de PHP. El manual de PHP es increíblemente completo y tiene comentarios realmente útiles tras cada artículo. Antes de hacer preguntas o tratar de averiguar un problema por tu cuenta, ahorra algo de tiempo dirigiéndote simplemente directamente al manual. Es muy probable que la respuesta a tu pregunta ya esté enclavada en un útil artículo en el sitio PHP.net.

2. Activa los informes de errores

Los informes de errores en PHP son muy útiles. Encontrarás errores en el código que es posible que no hayas detectado antes, ya que no todos los errores impiden que la aplicación funcione. Existen diferentes niveles de rigor que puede usar en los informes, pero E_ALL te mostrará la mayoría de los errores, tanto los críticos y como advertencias.

Una vez hayas preparado la aplicación para la producción, querrás desactivar los informes de errores de no ser así, tus usuarios verán errores extraños que no entienden.

3. Prueba un IDE

Los IDE's (entornos de desarrollo integrado) son útiles herramientas para cualquier desarrollador. Aunque no son para todos, un IDE tiene definitivamente su lugar. Los IDE's proporcionan herramientas como

  • resaltado de sintaxis
  • autocompletado de código
  • advertencias de error
  • refactorización (reelaboración)

Y muchas otras características. Hay un montón de IDEs excelentes por ahí que admiten PHP.

Try an IDETry an IDETry an IDE

4. Prueba un framework PHP

Puedes aprender mucho sobre PHP experimentando simplemente con frameworks PHP. Frameworks como CakePHP o CodeIgniter te permiten crear rápidamente aplicaciones PHP, sin tener que ser un experto en PHP. En cierto sentido, son casi como ruedas de entrenamiento PHP que te muestran cómo debería ser una aplicación PHP, y te muestran valiosos conceptos de programación (como separar la lógica del diseño, etc.).

Refutación: Yo personalmente no recomendaría que los principiantes usen un framework. Aprende primero los fundamentos. :)

5. Aprender el Enfoque DRY

DRY significa Don't Repeat Yourself (no te repitas a ti mismo), y es un valioso concepto de programación, con independencia del lenguaje. La programación DRY, como su nombre indica, garantiza que no se escriba código redundante. Este es un ejemplo de Reinhold Weber:

Learn the DRY approachLearn the DRY approachLearn the DRY approach

Este código...

ahora con el enfoque DRY:

Puedes leer más sobre el principio de programación DRY aquí y aquí.

6. Añade sangría al código y usa el espacio en blanco para mejorar la legibilidad

Si no usas sangrías y espacios en blanco en el código, el resultado se parecerá a una pintura de Jackson Pollack. Asegúrate de que el código es legible y fácil de buscar porque definitivamente realizarás cambios en el futuro. Los IDEs y los editores de texto avanzados pueden añadir sangría automáticamente.

7. "Nivela" tu código

La organización en niveles de las aplicaciones consiste simplemente en separar los diferentes componentes del código en distintas partes. Esto te permitirá cambiar fácilmente tu código en el futuro. Jason Lengstorf, autor en Tuts+, ha escrito un excelente artículo sobre cómo organizar tus aplicaciones PHP para facilitar su mantenimiento.

8. Utiliza siempre <?php ?>

Muchas veces los programadores intentan tomar atajos al declarar PHP. Estos son algunos de los más comunes:

Aunque estos ahorran algunos caracteres, todos estos métodos están depreciados y no son oficiales. Sigue con el estándar <?php?> ya que garantizará la compatibilidad con todas las versiones futuras.

9. Utiliza convenciones de nomenclatura significativas y coherentes

Esto no es sólo por tu propio bien. No hay nada peor que tratar de encontrar tu camino a través de convenciones de nomenclatura sin sentido de algún otro programador. Ayúdate a ti mismo y a los demás usando nombres que tengan sentido en tus clases y funciones.

10. Comentar, Comentar, Comentar

Además de usar espacios en blanco y sangrías para separar el código, también querrás usar comentarios en línea para anotar el código. Te lo agradecerás más adelante cuando necesites volver y encontrar algo en el código, o por si simplemente no recuerdas qué hacía una determinada función. También es útil para cualquier otra persona que necesite examinar el código.

11. Instala MAMP/WAMP

MySQL es el tipo de base de datos más popular que se usa con PHP (aunque no es la única). Si deseas configurar un entorno local para desarrollar y probar tus aplicaciones PHP en tu ordenador, instala MAMP (Mac) o WAMP (Windows). Instalar MySQL en tu propio equipo puede ser un proceso tedioso, y ambos paquetes de software son instalaciones directas de MySQL. Limpio y simple.

Install MAMP/WAMP

12. Asigna límites a tus scripts

Poner un límite de tiempo a tus scripts PHP es algo realmente crucial. Hay ocasiones en las que se producirá un error en los scripts y, cuando esto suceda, querrás usar la función set_time_limit para evitar bucles infinitos y tiempos de espera de conexión a la base de datos. set_time_limit pone un límite de tiempo en el número máximo de segundos que se ejecutará un script (el valor predeterminado es 30). Después de ese período de tiempo, se produce un error fatal.

13. Utilizar objetos (u OOP)

La programación orientada a objetos (OOP) utiliza objetos para representar partes de la aplicación. OOP no solo es una forma de dividir el código en secciones lógicas independientes, sino que también reduce la repetición de código y facilita mucho su modificación en el futuro. Si quieres aprender más, DevArticles tiene una excelente artículo sobre programación orientada a objetos con PHP.

14. Sé consciente de la diferencia entre las comillas simples y las dobles

Es más eficaz usar comillas simples en cadenas, ya que el analizador no tiene que examinar el código para buscar caracteres de escape y otras cosas que permiten las comillas dobles. Intenta usar comillas simples siempre que sea posible.

Refutación: En realidad, eso no es necesariamente cierto. Las pruebas de referencia muestran que, al probar cadenas sin variables, el uso de comillas dobles tiene claros beneficios.

15. No pongas phpinfo() en tu Webroot

Phpinfo es algo hermoso. Basta crear un archivo PHP que tenga

y dejando caer en el servidor en algún lugar, puedes aprender al instante todo acerca del entorno de tu servidor. Sin embargo, muchos principiantes colocarán un archivo que contiene phpinfo() en la raíz web del servidor. Esta es una práctica realmente insegura, y si ojos indiscretos obtuviesen acceso, potencialmente podría ser la perdición para tu servidor. Asegúrate de que phpinfo() esté en un lugar seguro, y como medida adicional, elimínalo una vez hayas terminado.

don't put phpinfo() in your web rootdon't put phpinfo() in your web rootdon't put phpinfo() in your web root

16. Nunca, nunca confíes en tus usuarios

Si la aplicación tiene lugares para entradas del usuario, siempre deberías asumir que van a intentar introducir código travieso. (No estamos insinuando que tus usuarios sean malas personas. Es sólo una buena mentalidad.) Una gran manera de mantener tu sitio libre de hackers consiste en inicializar siempre tus variables para proteger tu sitio de ataques XSS. PHP.net tiene un ejemplo de un formulario correctamente protegido con variables inicializadas:

17. Almacenar contraseñas con cifrado

A menudo, muchos principiantes de PHP depositan datos sensibles como contraseñas en la base de datos sin aplicar ningún cifrado. Considera la posibilidad de usar MD5 para cifrar las contraseñas antes de almacenarlas en la base de datos.

Refutación: Sin embargo, ten en cuenta que los hashes MD5 han sido comprometidos hace mucho tiempo. Son absolutamente más seguros que no usarlos, pero, con el empleo de una enorme "mesa arco iris", los hackers pueden cruzar la referencia a tu hash. Para añadir aún más seguridad, considera agregar también un salt. Un salt es básicamente un conjunto adicional de caracteres que se anexan a la cadena del usuario.

18. Utiliza las herramientas de diseño de visualización de bases de datos

Si te resulta difícil planificar y modificar bases de datos para tus aplicaciones PHP, podrías valorar el uso de una herramienta de visualización de bases de datos. Los usuarios de MySQL pueden trabajar con DBDesigner y MySQL Workbench para diseñar visualmente sus bases de datos.

use database visualization design toolsuse database visualization design toolsuse database visualization design tools

19. Utiliza el almacenamiento en búfer de salida

El almacenamiento en búfer de salida es una manera sencilla de mejorar en gran medida el rendimiento y la velocidad de tu script PHP. Sin almacenamiento en búfer de salida, el script mostrará el código HTML en la página a medida que sea procesado, en partes. Añadir almacenamiento en búfer de salida permite que PHP almacene el HTML como una variable y lo envíe al navegador en un fragmento.

Para habilitar el almacenamiento en búfer de salida, añade simplemente ob_start() en la parte superior del archivo.


Refutación: Aunque no es necesario, generalmente se considera una buena práctica seguir adelante y anexar también la función "ob_end_flush();" a la parte inferior del documento. P.S. ¿Quieres comprimir también el HTML? Simplemente reemplaza "ob_start();" por "ob_start('ob_gzhandler')";

Consulta este artículo de consejos de desarrollo para obtener más información.

20. Protege tu script de la inyección SQL

Si no escapas tus caracteres utilizados en cadenas SQL, el código será vulnerable a las inyecciones SQL. Puedes evitar esto mediante mysql_real_escape_string o mediante instrucciones preparadas.

Aquí tienes un ejemplo de mysql_real_escape_string en acción:

y una declaración preparada:

Mediante el uso de instrucciones preparadas, nunca incrustamos directamente en nuestra consulta los datos introducidos por el usuario. En su lugar, usamos el método "bind_param" para enlazar los valores (y la salida) a la consulta. Mucho más seguro y, en particular, más rápido al ejecutar varias sentencias CRUD a la vez.

Obtén más sobre cómo crear aplicaciones PHP seguras en Tuts+.

21. Prueba ORM

Si estás escribiendo PHP orientado a objetos, puedes usar la ingeniosa asignación relacional de objetos (ORM). ORM te permite convertir datos entre bases de datos relacionales y lenguajes de programación orientados a objetos. En resumen: ORM te permite trabajar con bases de datos de la misma manera que trabajas con clases y objetos en PHP.

Hay un montón de bibliotecas ORM para PHP como Propel, y ORM está integrado en frameworks PHP como CakePHP.

22. Caché de páginas basada en bases de datos

El almacenamiento en caché de páginas PHP basada en bases de datos es una excelente idea para mejorar la carga y el rendimiento de tu script. Realmente no es tan difícil crear y recuperar archivos estáticos de contenido con la ayuda de nuestro buen amigo ob_start(). Este es un ejemplo tomado de Snipe.net:

Este fragmento de código usará una versión almacenada en caché de una página que tiene menos de 2 horas.

23. Utiliza un sistema de almacenamiento en caché

Si deseas un sistema de almacenamiento en caché más robusto, existen algunos scripts de almacenamiento en caché para PHP que podrían ser más completos que el ejemplo anterior.

use a caching systemuse a caching systemuse a caching system

24. Validar datos de cookies

Los datos de cookies, como cualquier dato transmitido en la Web, pueden ser perjudiciales. Puedes validar los datos de las cookies con htmlspecialchars() o mysql_real_escape_string().

25. Utiliza sistemas de almacenamiento en caché de archivos estáticos

Además de utilizar sistemas de almacenamiento en caché de bases de datos como Memcached, es posible que también quieras probar un sistema de plantillas para aumentar el rendimiento en tus aplicaciones PHP. Smarty es un robusto sistema de plantillas que tiene integrado el almacenamiento en caché.

26. Optimiza tu código

La optimización de tu código con una herramienta como xdebug puede ayudarte a detectar rápidamente cuellos de botella y otros problemas potenciales en tu código PHP. Algunos IDEs como Netbeans también tienen capacidades de optimización PHP.

27. Código a una norma

Una vez hayas aprendido los fundamentos de PHP, puedes empezar a aprender sobre la codificación hacia un estándar. Hay diferencias entre los estándares existentes (por ejemplo Zend y Pear), y encontrar uno y continuar con él te ayudará a mantener la consistencia de tu código a largo plazo.

28. Mantén las funciones fuera de los bucles

El rendimiento se ve afectado cuando se incluyen funciones dentro de bucles. Cuanto mayor sea el bucle que tengas, mayor será el tiempo de ejecución. Tómate un tiempo extra y la línea de código y coloca la función fuera del bucle.


Nota del editor: Concíbelo de esta manera. Intenta eliminar tantas operaciones del bucle como sea posible. ¿Necesitas crear realmente esa variable para cada iteración del bucle? ¿Necesita crear realmente cada vez la función? Claro que no. :)

29. No copies variables extra

A algunas personas les gusta tratar de hacer su código más atractivo copiando variables predefinidas en variables de nombres más cortos. Esto es redundante y potencialmente podría duplicar la memoria del script. Google Code tiene buenos y malos ejemplos de uso variables:

Mal

Bien


Refutación: En referencia al comentario sobre "duplicar la memoria", esto en realidad es un concepto erróneo común. PHP implementa la administración de memoria "copia en escritura". Esto básicamente significa que puedes asignar un valor a tantas variables como desees sin tener que preocuparte de que los datos sean realmente copiados. Aunque se podría argumentar que el ejemplo "Bien" anteriormente mostrado pueda hacer que el código sea más limpio, dudo mucho que sea más rápido.

30. Actualizar a la última versión de PHP

Si bien parece una cosa de sentido común, muchas personas no actualizan PHP tan a menudo como debieran. Hay una gran mejora de rendimiento entre PHP 4 y PHP 5. Comprueba tu servidor para asegurarte de que estás actualizado.

31. Reduce el número de consultas a la bases de datos

De cualquier manera que puedas reducir el número de consultas a la base de datos, mejor funcionará tu script PHP. Existen herramientas como Stace (Unix) y Process Explorer (Windows) que te permiten encontrar procesos redundantes y te muestran cómo podrías combinarlos.

Reduce the number of database queriesReduce the number of database queriesReduce the number of database queries

32. No tengas miedo de pedir ayuda

Está en la naturaleza humana querer ocultar el hecho de que no sabemos mucho sobre un tema concreto. ¡A nadie le gusta ser un n00b! Pero, ¿cómo vamos a aprender sin preguntar? Siéntete libre de utilizar foros, IRC, o StackOverflow para formular más preguntas a experimentados desarrolladores de PHP. El sitio web de PHP tiene una página sobre cómo obtener ayuda sobre PHP.

¿Tienes alguna refutación propia? ¡Seguro que sí! Empecemos el debate.

  • Síguenos en Twitter o suscríbete al feed RSS de Tuts+ para obtener más tutoriales y artículos sobre desarrollo web a diario.


Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.