Emezeta Card PHP Cheat Sheet (v0.2)

80 comentarios · 24.062 lecturas · programacion

English here!

Después de algunas semanas de trabajo intensivo, he conseguido parte de mi propósito inicial: una chuleta (o cheat sheet) de referencia para programadores PHP.

php cheat sheet emezeta card reference help

PHP es un lenguaje de programación muy potente y amplio, en todos sus sentidos. Y aunque la documentación del sitio de PHP es de las mejores que he utilizado (tanto por lo accesible como por lo bien documentada), muchas veces se echa en falta una chuleta de referencia con las funciones, orden de los parámetros para poder echar un vistazo rápidamente.

Leyenda


php reference legend leyenda

Consideraciones


Esta chuleta de referencia puede parecer una tonteria, pero ha tomado muchísimo tiempo (y tomará), puesto que aún queda mucho:

  • Corregir posibles errores (agradecería que notificaran erratas en comentarios).
  • Añadir más información que consideré secundaria (funciones que no sirven en plataformas windows, inexistentes en PHP3...).
  • Posible traducción al español.
  • Documentación faltante (funciones de red, de Mysql o Postgres, GeoIP, soporte de compresión, imagen, etc...) que las reservo para una posible segunda página.

Licencia


Así que hablemos de licencias. En principio había pensado en publicar una tarjeta de referencia de pago como hacen, por ejemplo, en Visibone.

Sin embargo, finalmente he decidido liberarla para que todos los programadores puedan disfrutar de ella, eso sí, rogando que si les resulta útil, hagan una donación (por pequeña que sea) para poder continuar con las siguientes partes (o quién sabe, si gusta, de algún otro lenguaje).

Tened en cuenta el trabajo que ha llevado. ¡El tema de las donaciones es bastante importante para seguir manteniendo gratuita la chuleta y sus posteriores versiones!

English


Emezeta PHP Card is a PHP reference cheat sheet. You can download it in two formats: PNG and PDF, ready for printing.

Putting this cheat sheet together has meant a huge amount of time and effort, so if you find it useful, please consider supporting my work by making a donation. Your donations are what will keep the cheat sheet and all the upcoming versions free of charge. Thank you.

Donate to Emezeta Card / Donación para Emezeta Card

Changelog


  • Emezeta PHP Card v0.2
  • Cambiado el color amarillo por marrón oscuro para facilitar legibilidad (Lillo)
  • Vectorización de las fuentes para mejor resolución de impresión. Ahora el PDF es más pesado (11MB) y tarda más en generar el contenido, pero la impresión de las fuentes será más clara y nítida. (Asier Marqués)
  • Emezeta PHP Card v0.1

Por favor, comenta las incidencias o sugerencias que puedas tener al imprimir en los distintos formatos (DIN A3, DIN A4...), así como problemas que surjan (no poder descomprimir el fichero, etc...), posibles mejoras o cambios, así como problemas que hayan surgido de una versión a otra.

Descarga


Si eres webmaster, por favor, no enlaces directamente a la descarga, enlaza a esta dirección: Emezeta Card PHP Cheat Sheet. If you are webmaster, please, don't link direct download, link to this address: Emezeta Card PHP Cheat Sheet.


Conexión a internet más rápida y veloz.

Funciones PHP: Optimizar código

3 comentarios · 3.971 lecturas · programación

Los programadores (sobre todo los que estamos aprendiendo) solemos preocuparnos poco de la optimización de código cuando realizamos un programa. A priori, le damos importancia a dos factores:

  • Funcionalidad: La más intuitiva de todas. Que el programa que estamos realizando, haga lo que buscamos.
  • Brevedad: Buscamos que el programa ocupe lo menos posible.
herramientas tools optimización

Otros factores como rapidez, comprensión del código, optimización, documentación... no son evaluados como criterios primarios. Sin embargo, son muy importantes.

En la programación web (más si cabe) uno de los criterios más importantes es la optimización, ya que disponemos de un servidor con recursos limitados. Si conseguimos que nuestro código sea más eficiente, dispondremos de más capacidad en nuestro servidor (menos carga).

Esto es especialmente importante cuando tenemos muchas visitas diarias: optimizar un script PHP de un artículo no repercute especialmente, en cambio, optimizar un script PHP que se ejecuta siempre (por ejemplo, el sidebar) mejora ampliamente la eficiencia de nuestro código.

En PHP Benchmark hacen algunas pruebas de eficiencia con respecto a funciones similares de PHP. A continuación voy a hacer un breve repaso, con algunos añadidos:

  • Usar HTML ante PHP: Si necesitas escribir HTML hazlo directamente sin utilizar echo o print. Usa PHP para imprimir información sólo cuando sea necesario.
  • Variables: Favorece siempre que puedas el uso de variables estáticas. No utilices variables que no necesites (ocupan memoria). Evita las variables globales en la medida de lo posible. Usa constantes.
  • Unset: Utiliza la función unset para destruir variables y liberar memoria, sobre todo con arrays o variables extensas. PHP usa un Garbage Collector, pero en mitad de un script puedes usarlo para maximizar la memoria disponible (útil en servidores limitados).
  • Bucles: Revisa bien los bucles en tus programas, si no es necesario un bucle, evitalo. Si puedes ahorrarte ciclos, hazlo. Comprueba la condición de parada y nunca uses funciones en ella (vuelca en una variable antes del bucle). En términos de velocidad un do..while es más rápido que un while, que a su vez es más rápido que un for.
  • Inclusiones: Organiza bien tu código y evita en lo posible el uso de funciones como include_once() y require_once(). Estas funciones son muy utiles para comprobar si un script ya ha sido procesado, pero son muy costosas. En su lugar utiliza include() y require().
  • Supresión de errores @: Al colocar una @ antes de una función evitamos que se muestre un posible mensaje de error. Muy útil, pero muy costoso. Es preferible utilizar un funcion() or ....
  • Random: Si queremos generar valores aleatorios con la función rand(), es recomendable utilizar la familia de funciones mt_rand(). Esta función utiliza un algoritmo de Mersenne Twister mucho más eficiente y rápido.
  • Uso de comillas en PHP: Las comillas simples interpretan literales, sin embargo, las comillas dobles además interpolan el valor de variables. Da siempre preferencia a las comillas simples y nunca escribas símbolos de dolar sin escapar (\$) en comillas dobles, ralentiza mucho la ejecución.
  • Comprobar si existen variables: Siempre se debería utilizar una función para comprobar si existe una variable. Entre las funciones isset(), empty() y is_array(), la primera es la más rápida y eficiente.
  • Operador ===: En las comparaciones, la diferencia del operador === con el operador == es que este último hace una comprobación de tipos de variables antes. Si estás seguro de que son del mismo tipo, utiliza el primero.
  • Memoria y velocidad: Utiliza memory_get_usage() y microtime() para comprobar la velocidad y la memoria que consume tu código.
  • Comparaciones: Los if / else son siempre más rápidos que los switch / case.
  • Las siguientes funciones son alias de las de su derecha. Utilizar la función de la izquierda es mucho más lento que usar la de la derecha:
    • chop -> rtrim
    • close -> closedir
    • die -> exit
    • dir -> getdir
    • diskfreespace -> disk_free_space
    • fputs -> fwrite
    • ini_alter -> ini_set
    • is_writeable -> is_writable
    • join -> implode
    • pos -> current
    • rewind -> rewinddir
    • strchr -> strstr
    • sizeof -> count
    Curiosamente, fputs, a pesar de ser un alias, se comenta que es más rápida que fwrite.
  • Incrementos: Cuando incrementamos una variable del modo $i++ es más lento que si lo hacemos ++$i. La diferencia es que la primera forma primero usa su valor y luego lo incrementa, en cambio, la segunda primero la incrementa y luego la usa. La segunda forma es más rápida, puesto que utiliza 3 opcodes, en lugar de los 4 opcodes de la primera. Usarla cuando sea posible.
  • Imprimiendo textos: La función echo es más rápida que la función print, además de otras diferencias.
  • Expresiones regulares: El uso de regexp es muy contradictorio. Como ventajas tenemos que usan muy poca de memoria, muy potentes y ahorran mucho código. Como desventajas son muy lentas, muy difíciles para novatos o personas que no conozcan teoría de autómatas y lenguajes formales. Personalmente, aconsejo evitarlas a no ser que sean muy necesarias. Por ejemplo, la expresión regular preg_match("![0-9]+!", $foo); reconoce cualquier cadena que sea un número, esto es mucho mas eficiente usando la función ctype_digit($foo);. Las funciones strcasecmp(), strpbrk() y stripos() pueden ayudar mucho.
  • Reporte de errores: Utiliza E_STRICT como nivel de error para hacer debug en tu código PHP. Revisando los logs podrás ver todos los avisos de posibles errores con un nivel máximo.
  • Separaciones: split() permite utilizar expresiones regulares, mientras que explode() no. Intenta utilizar explode siempre antes que la función split.

Fuentes: 12 PHP tricks / PHP benchmarks / 7 tips for PHP / More PHP tips.


Páginas: 1 ... ... 1


Artículo de http://www.emezeta.com/

6 consultas efectuadas / Página generada en 0.037 segundos

Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.

Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons

Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)