Con la adopción generalizada de PHP, es casi demasiado fácil encontrar un script o fragmento de código para hacer exactamente Que necesitas. Desafortunadamente, no hay un filtro en cuanto a lo que es una "buena práctica" y lo que, bueno ... no es tan bueno al escribir un script PHP. Necesitamos fuentes confiables, que hayan demostrado que tienen un conocimiento sólido de las mejores prácticas de PHP.
Necesitamos maestros de PHP para mostrarnos los mejores principios a seguir para la programación de PHP de alto grado.
No hay mejor recurso que el creador de PHP para saber de qué es capaz PHP. Rasmus Lerdorf creó PHP en 1995, y desde entonces el lenguaje se ha extendido como un reguero de pólvora a través de la comunidad de desarrolladores, cambiando la cara de Internet. Sin embargo, Rasmus no creó PHP con esa intención.. PHP fue creado por la necesidad de resolver problemas de desarrollo web.
Y al igual que con muchos proyectos de código abierto que se han vuelto populares, la motivación nunca fue filosófica o incluso narcisista. Fue simplemente un caso de necesidad de una herramienta para resolver problemas relacionados con la Web en el mundo real. En 1994, las opciones eran bastante limitadas cuando se trataba de herramientas de desarrollo web..
Sin embargo, no puedes usar PHP para todo. Lerdorf es el primero en admitir que PHP es realmente solo una herramienta en su caja de herramientas, y que incluso PHP tiene limitaciones.
Utilice la herramienta adecuada para el trabajo. Me he encontrado con compañías que han comprado PHP completamente, implementándolo absolutamente en todas partes, pero nunca fue un lenguaje de propósito general apropiado para cada problema. Está más en casa como el lenguaje de programación de aplicaciones para usuario para la Web..
Tratar de usar PHP para todo no es eficiente, y ciertamente no es el mejor uso de su tiempo como desarrollador web. No tenga miedo de usar otros idiomas si PHP no está funcionando para su proyecto.
Nadie necesita cuestionar la autoridad de Matt Mullenweg con PHP. Él (junto con una comunidad rabiosa) ha desarrollado el sistema de blogs más popular del planeta: Wordpress. Después de crear Wordpress, Matt y la compañía lanzaron el estelar Wordpress.com, un sitio de blogs gratuito basado en el software de blogs de Wordpress MU para blogs múltiples. Al momento de escribir este artículo, Wordpress.com aloja más de 4 millones de blogs, y sus usuarios han escrito más de 140,000 publicaciones hoy. (Puedes ver más estadísticas interesantes sobre el uso de Wordpress.com aquí).
Si alguien sabe cómo escalar un sitio web, es Matt Mullenweg. En 2006, Matt dio una idea de la estructura de la base de datos de Wordpress y explicó por qué Wordpress MU usa una tabla MySQL separada para cada blog, en lugar de usar una tabla gigante "monolítica" para todos los blogs..
Probamos este enfoque para MU, pero encontramos que era demasiado costoso escalar más allá de cierto punto. Con estructuras monolíticas golpeas una pared basada en tu hardware. En MU los usuarios están divididos y se pueden dividir fácilmente, por ejemplo, en WordPress.com tenemos usuarios divididos entre 4096 bases de datos, lo que le permite escalar de manera muy económica y eficiente a cientos de miles e incluso millones de usuarios y niveles de tráfico extremadamente altos.
El poder migrar las tablas permite que el código y, en última instancia, los blogs se ejecuten mucho más rápido y que se escale más fácilmente. Junto con un gran almacenamiento en caché y el uso de bases de datos inteligentes, Matt ha demostrado que los sitios extremadamente populares como Facebook y Wordpress.com pueden ejecutarse desde PHP y manejar la increíble carga de tráfico..
Dave Child es la creación (teehee) detrás del recientemente renombrado Added Bytes (anteriormente ilovejackdaniels.com) sitio web que presentó excelentes hojas de trucos de Dave para muchos lenguajes de programación. Dave trabajó para muchas empresas de desarrollo en el Reino Unido y se ha establecido como una autoridad en el mundo de la programación..
Dave ofrece algunos consejos sabios a la hora de escribir código seguro en PHP: No confíe en sus usuarios. Podrían lastimarte.
Entonces, la regla fundamental de todo desarrollo web, y no puedo enfatizarlo lo suficiente, es: Nunca, Nunca, Confíe en Sus Usuarios. Suponga que cada pieza de datos que su sitio recopila de un usuario contiene código malicioso. Siempre. Eso incluye los datos que cree que ha verificado con la validación del lado del cliente, por ejemplo, utilizando JavaScript. Si puede lograrlo, tendrá un buen comienzo. Si la seguridad de PHP es importante para usted, este punto único es el más importante de aprender..
Dave continúa brindando ejemplos específicos de prácticas seguras en las partes uno, dos y tres de su serie 'Writing Secure PHP'. Pero su última comida para llevar es esta:
Por último, ser total y absolutamente paranoico..
Si asume que su sitio nunca será atacado, o enfrentará problemas de cualquier tipo, entonces, cuando algo salga mal, tendrá una gran cantidad de problemas. Si, por otro lado, usted asume que cada visitante de su sitio lo busca y se encuentra permanentemente en guerra, se ayudará a mantener su sitio seguro y estará preparado en caso de que las cosas salgan mal..
Ben Balbo ha estado escribiendo para Site Point, un sitio de tutoriales muy respetado para desarrolladores y diseñadores. Está en el comité tanto para el grupo de usuarios de PHP de Melbourne como para el Open Source Developers 'Club, por lo que sabe una o dos cosas sobre el idioma. No es de extrañar que con los antecedentes de Ben como desarrollador y entrenador de PHP, él recomiende poner un poco más de consideración y preparación en el almacenamiento en caché de PHP..
Si tiene un sitio web ocupado y predominantemente estático, como un blog, que se administra a través de un sistema de administración de contenido, es probable que requiera una pequeña modificación, pero que se beneficie de las enormes mejoras de rendimiento que se deriven de una pequeña inversión de su tiempo. La configuración del almacenamiento en caché para un sitio más complejo que genera contenido por usuario, como un portal o un sistema de carrito de compras, resultará un poco más complicada y requiere mucho tiempo, pero los beneficios aún son claros.
Hay muchas técnicas diferentes para el almacenamiento en caché en PHP, y Ben toca algunas de las más grandes en el artículo, como:
y muchos otros. Debido a la naturaleza de los lenguajes dinámicos como PHP, el almacenamiento en caché es fundamental para almacenar aquellas partes de la página a las que se accede con frecuencia y que no se cambian con frecuencia..
Cuando Chad Kieffer no está ocupado moviendo interfaces de usuario y administrando bases de datos, está dando consejos de expertos desde su blog 2 cucharadas. Debido al amplio campo de experiencia de Chad, a menudo puede ver el panorama general que otros programadores podrían no ver, especialmente cuando se trata del enfoque holístico que Chad toma para desarrollar un sitio web. Se especializa en todos los aspectos del proceso de desarrollo, por lo que cualquier información que pueda proporcionar al armar un proyecto completo será útil.
Chad cree que usar un IDE como Eclipse PDT (paquete de desarrollo de PHP de Eclipse) con una mezcla de plantillas y fragmentos de código realmente puede acelerar el tiempo de respuesta de un proyecto..
Los horarios ocupados, las largas listas de tareas y las fechas límite dificultan que los desarrolladores se familiaricen con algunas de las funciones avanzadas que brindan sus herramientas. Esto es una pena, ya que algunas características, como las plantillas Eclipse, pueden reducir realmente el tiempo de codificación y los errores..
El sentido común dice que cada vez que pueda automatizar una tarea, más rápido terminará el proyecto. Lo mismo ocurre con la teoría de Dan. Al tomarse el tiempo para crear plantillas que usará una y otra vez, ahorrará toneladas de tiempo automatizando las partes repetitivas de la codificación..
Al utilizar un IDE como Eclipse y el paquete PDT, encontrará que su tiempo de desarrollo se acelerará de manera incremental. El IDE cerrará automáticamente los corchetes, agregará los puntos y comas que faltan e incluso le permitirá depurar dentro del editor, sin tener que cargarlos en el servidor.
(Chad tiene un tutorial ingenioso sobre cómo comenzar con Eclipse PDT y los beneficios de un IDE en general, si está interesado).
Si bien Joey Sochacki no es un nombre tan grande como Matt Mullenweg en la comunidad de PHP, es un desarrollador web experimentado y comparte consejos que ha recogido en su blog Devolio..
Joey ha descubierto que, a pesar de que hay un montón de filtrado que tiene que ocurrir al escribir el código PHP, no muchos programadores hacen uso de las funciones de filtrado de PHP..
Filtrado de datos. Todos tenemos que hacerlo. La mayoría, si no todos nosotros, despreciamos hacerlo. Sin embargo, desconocidos para la mayoría son las funciones filter_ * de PHP, que nos permiten hacer todo tipo de filtrado y validación. Usando las funciones filter_ * de PHP, podemos validar y sanear los tipos de datos, las URL, las direcciones de correo electrónico, las direcciones IP, eliminar los caracteres incorrectos y más, todo con relativa facilidad..
El filtrado puede ser complicado, pero esta guía puede ayudar enormemente. Con la ayuda de Joey, aprenderá cómo instalar los filtros y los filtros casi cualquier cosa, Aprovechando el poder de filtrado de PHP..
Siempre ha habido un debate sobre si usar un marco PHP como Zend, CakePHP, Code Igniter o cualquier otro marco. Hay ventajas y desventajas en el uso de uno, y muchos desarrolladores tienen sus propias opiniones sobre si seguir o no este camino..
Josh Sharp es un desarrollador web que hace su pan y mantequilla creando sitios web para clientes. Esta es la razón por la que debe confiar en él cuando dice que es una buena idea usar un marco PHP para ahorrar tiempo y eliminar errores al programar. ¿Por qué? Josh cree que es porque PHP es demasiado fácil de aprender.
Pero la facilidad de uso de PHP es también su caída. Debido a que hay menos restricciones en la estructura del código que escribe, es mucho más fácil escribir código incorrecto. Pero hay una solución: usar un framework..
Los marcos PHP ayudan a estandarizar la forma en que se programa, y pueden ahorrar mucho tiempo en el proceso de desarrollo. Puedes leer más sobre el beneficio de usar un marco PHP en el blog de Josh.
Contrariamente a la creencia de Josh de que uno debería usar un marco PHP, Rasmus Lerdorf, el mismo Padrino de PHP, cree que los marcos no son tan buenos. ¿Por qué? Porque realizan mucho más lento que el simple PHP..
Durante la presentación de Rasmus en Drupalcon 2008, Rasmus comparó los tiempos de respuesta a una página de PHP con un simple ejemplo "Hola mundo", y lo comparó con algunos marcos de PHP (diapositivas 24-32), y mostró que los marcos de PHP son mucho más lentos que PHP directo.
Puede escuchar o ver la presentación completa en la que Rasmus muestra las pérdidas de rendimiento con los marcos PHP. En resumen, Rasmus muestra que el rendimiento tiene un gran éxito cuando se utiliza un marco PHP en lugar de usar PHP puro..
ElNota: Si tiene que usar un marco de trabajo de PHP, a Rasmus le gusta lo mejor de Code Igniter, ya que es "menos como un marco de trabajo"]
Jack Herrington no es ajeno a PHP y al mundo del desarrollo. Además de escribir más de 30 artículos para el prestigioso IBM developerWorks, Jack también ha publicado libros de programación como PHP Hacks. Jack es de buena fe experto.
Herrington recomienda usar el procesamiento por lotes y cron para abordar aquellas tareas que se pueden procesar en segundo plano. Los usuarios web no quieren esperar mucho tiempo para que las tareas se completen en la web. Hay algunos trabajos que llevan más tiempo que son mucho más adecuados para ser realizados en segundo plano.
Ciertamente, en algunos casos pequeños, es un poco más fácil disparar un hilo auxiliar para manejar trabajos pequeños. Pero es fácil ver que con el uso de herramientas convencionales (cron, MySQL, PHP estándar orientado a objetos y Pear :: DB) la creación de trabajos por lotes en aplicaciones PHP es fácil de hacer, implementar y mantener..
Jack cree en la simplicidad y, en lugar de utilizar subprocesos en los servidores, utiliza la combinación simple de cron, PHP y MySQL para procesar las tareas en segundo plano..
He hecho ambas cosas, y creo que cron tiene la ventaja del principio "Keep It Simple, Stupid" (KISS). Mantiene el procesamiento de fondo simple. En lugar de tener una aplicación de procesamiento de trabajos multiproceso que se ejecuta para siempre y, por lo tanto, nunca puede perder memoria, tiene un simple script por lotes que inicia cron. El script determina si hay algo que hacer, lo hace y luego sale. No hay que preocuparse por las fugas de memoria. No hay necesidad de preocuparse por un hilo atascado o atrapado en un bucle infinito.
David Cummings dirige su propia compañía de software que se especializa en sistemas de gestión de contenido, y ha ganado varios premios. Si alguien sabe cómo desarrollar una aplicación PHP de manera eficiente, es Dave..
David escribió en un artículo de SitePoint sobre los dos consejos de PHP que deseaba haber aprendido al principio. Uno de los consejos: Active el informe de errores inmediatamente. Ahorrará mucho tiempo a largo plazo.
Lo más importante que les digo a las personas que usan PHP es que convierta los informes de errores a su nivel máximo. ¿Por qué querría hacer esto? En general, el informe de errores se establece en un nivel que oculta muchas cosas pequeñas como:
- declarando una variable antes de tiempo,
- referenciar una variable que no está disponible en ese segmento de código, o
- usando una definición que no está establecida.
Es posible que estos factores no parezcan tan importantes, hasta que desarrolle programas estructurados u orientados a objetos con funciones y clases. Con demasiada frecuencia, escribir código sin informe de errores elevado le costaría horas, ya que recorrió funciones largas que no funcionaron porque una variable estaba mal escrita o no era accesible.
El informe de errores puede hacer que encontrar la razón de un error sea mucho más fácil. Se puede identificar rápidamente un pequeño error en el código si el informe de errores de PHP está activado. Ahórrese un poco de tiempo y tire del pelo al permitir que PHP encuentre sus errores por usted.
Lee el post anterior en esta serie: 10 Principios de los Maestros CSS.
Glen Stansberry es un desarrollador web y bloguero que ha luchado más veces de lo que desea admitir con CSS. Puedes leer más consejos sobre desarrollo web en su blog Web Jackalope..