# Qué es PHP

PHP es un lenguaje de programación dirigido a la creación de páginas web dinámicas. Es un lenguaje de programación procedural con una sintaxis similar a la del lenguaje C, aunque actualmente puede utilizarse una sintaxis de programación orientada a objetos similar a la de Java. En esta página se tratan los temas siguientes:

## Páginas, web, lenguajes de programación y bases de datos

La World Wide Web (o simplemente, la web) fue ideada por Tim Berners Lee en 1990, empezó a funcionar en el CERN en 1991 y se extendió rápidamente por las Universidades del mundo (en aquel entonces Internet era una red a la que sólo tenían acceso entidades gubernamentales, particularmente entidades educativas). En 1992 algunos proveedores comerciales empezaron a dar acceso a particulares y empresas, lo que popularizó todavía más la web.

En aquellos años, las páginas web solían ser documentos de texto guardados en algún directorio de un servidor y a los que se podía acceder mediante los primeros navegadores web. Cada página web que se veía en el navegador correspondía a un fichero en el servidor.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

- El usuario escribe la dirección de la página web en su navegador
- El navegador la solicita al servidor web correspondiente (este paso requiere la participación de máquinas intermedias que no se comentan aquí)
- El servidor lee el fichero que corresponde a esa página web
- El servidor envía el fichero al navegador
- El navegador muestra la página web al usuario

Este esquema de funcionamiento es suficiente para sitios web pequeños creados por una sola persona, pero en cuanto un sitio web empieza a crecer, empiezan a surgir los problemas. Por ejemplo:

- si el sitio contiene muchas páginas es necesario crear menús que permitan orientarse por el sitio. Como cada página debe contener el menú, cualquier cambio en el menú obliga a modificar todas las páginas.
- si el sitio modifica a menudo su contenido (por ejemplo, la web de un periódico), tener que editar manualmente los ficheros ralentiza el proceso.
- si el sitio es creado por varias personas, cualquiera puede modificar por error los ficheros de otras personas y si varias personas quieren modificar el mismo fichero se pueden producir conflictos.
- si se quiere permitir la participación del público (foros, comentarios en blogs, etc), esta participación depende de que uno de los autores modifique los ficheros, lo que ralentiza el proceso.
- si personas sin conocimientos técnicos quieren participar en la creación del sitio, pueden cometer errores editando los ficheros.

La solución es que las páginas no sean ficheros estáticos guardados en el disco, sino que se generen cuando el usuario las solicite.

Por ejemplo, para resolver el problema de los menús comentado anteriormente, una solución sería que el menú estuviera en un fichero aparte y cuando el usuario solicitara una página, el menú se añadiera al principio de cada página (nota: no me refiero a la composición de páginas mediante frames, una solución desaconsejada hace muchos años, sino a componer un único fichero a partir de varios).

Esa generación de las páginas se puede hacer de varias maneras. Una de ellas es recurrir a lenguajes de programación generales o específicos (como PHP). Desde sus inicios, los servidores web permiten recurrir a lenguajes de programación para generar las páginas web.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

- El usuario escribe la dirección de la página web en su navegador
- El navegador la solicita al servidor web correspondiente (este paso requiere la participación de máquinas intermedias que no se comentan aquí)
- El servidor detecta que no es un documento ya existente sino que tiene que generarse, así que recurre al intérprete del lenguaje
- El intérprete del lenguaje ejecuta el programa y la salida del programa se envía al servidor
- El servidor envía el fichero al navegador
- El navegador muestra la página web al usuario

Es importante señalar que al usuario le resulta indiferente que la página estuviera guardada en el disco duro o que se haya generado en ese momento, de la misma manera que le resulta indiferente el lenguaje de programación que haya generado el documento. El navegador recibe el documento en ambos un documento de texto que contiene etiquetas html y lo muestra al usuario.

A veces, el usuario puede suponer que la página que se le está sirviendo se ha generado mediante PHP ya que la dirección de la página termina por .php en vez del habitual .html, aunque no se puede estar seguro de que sea realmente así.

Pero el uso de lenguajes de programación no suele ser suficiente. Si la información está diseminada en multitud de trozos para organizar y acceder fácilmente a toda esa información, es conveniente utilizar algún sistema gestor de bases de datos. Existen muchos sistemas gestores de bases de datos y cualquier lenguaje de programación puede conectarse a ellas y realizar consultas.

La imagen siguiente ilustra de forma simplificada el esquema de funcionamiento:

- El usuario escribe la dirección de la página web en su navegador
- El navegador la solicita al servidor web correspondiente (este paso requiere la participación de máquinas intermedias que no se comentan aquí)
- El servidor detecta que no es un documento ya existente sino que tiene que generarse, así que recurre al intérprete del lenguaje
- El intérprete del lenguaje ejecuta el programa, que requiere ejecutar consultas al sistema gestor de bases de datos y la salida del programa se envía al servidor
- El servidor envía el fichero al navegador
- El navegador muestra la página web al usuario

Como antes, al usuario le resulta indiferente que se haya accedido o no a un sistema gestor de bases de datos. El navegador recibe el documento en ambos un documento de texto que contiene etiquetas html y lo muestra al usuario.

Volver al principio de la página

## Historia de PHP

Es importante señalar que la evolución de PHP es diferente a la de otros lenguajes de programación. No hay ningún organismo encargado de la definición del lenguaje PHP (y empresas que implementan esa definición en diferentes compiladores o intérpretes), sino que el lenguaje evoluciona a la vez que lo hace el intérprete "oficial" de PHP publicado desde la versión 4 por la empresa Zend. Existen otros motores, como HipHop creado por Facebook, pero son minoritarios. Aunque el lenguaje y el intérprete son cosas conceptualmente distintas, es habitual referirse a ambos como PHP.

PHP (el intérprete) ha sido publicado siempre como software libre, con una licencia llamada licencia PHP. Esta licencia es una licencia libre sin copyleft. Como la licencia impone restricciones al uso del término PHP en productos derivados, esta licenica es incompatible con la licencia GPL, por lo que la Free Software Foundation recomienda que sólo se utilice para programar extensiones del propio PHP.

PHP fue creado por Rasmus Lerdorf en 1995. El nombre PHP significaba entonces Personal Home Page y hacía referencia a que era un lenguaje diseñado para facilitar la generación de páginas web, en primer lugar en el sitio web personal de Rasmus Lerdorf y rápidamente en muchos sitios. Desde entonces, PHP no ha dejado de evolucionar, proporcionando nuevas características.

En noviembre de 1997 Rasmus Lerdorf publicó una segunda versión del lenguaje, PHP 2.

En junio de 1998 se publicó PHP 3. Esta versión fue creada por Zeev Suraski y Andi Gutmans, que desde entonces dirigen el desarrollo de PHP (con la colaboración de Lerdorf). A partir de esta versión PHP significa PHP: Hypertext Preprocessor (añadiendose a la lista de acrónimos recursivos como GNU, Lame, Wine, RPM, etc.). La característica más decisiva de esta versión fue la mejora de la la extensibilidad del lenguaje, permitiendo que muchos programadores aportaran nuevos módulos, pero esta versión también simplificó la sintaxis del lenguaje e introdujo la posibilidad de utilizar una sintaxis orientada a objetos.

En 1999 Zeev Surski y Andi Gutmans crearon la empresa Zend Technologies, que desarrolla productos basados en PHP (servidores, editores, etc.).

En mayo de 2000 se publicó PHP 4, que incluía un nuevo motor llamado Zend Engine. Esta versión era bastante más rápida que la anterior y añade nuevas características como las sesiones.

En julio de 2004 se publicó PHP 5, que incluía un nuevo motor llamado Zend Engine 2. La característica más importante de esta versión es la mejora de la programación orientada a objetos.

La siguiente versión prevista, que se tendría que publicar como PHP 6, se fijó el objetivo de dar a PHP soporte completo de Unicode, el juego de caracteres universal. Pero ese objetivo ha resultado ser mucho más difícil de conseguir de lo esperado y en 2010 prácticamente se tiró la toalla y sigue sin estar claro si se alcanzará el objetivo.

Mientras tanto se han publicado versiones importantes como PHP 5.3, publicada en junio de 2009.

Desde sus inicios, PHP ha sido posiblemente el lenguaje más utilizado en entornos de desarrollo web, y desde 2001 está situado en el Top 10 del índice Tiobe de lenguajes de programación.

Para construir sitios web profesionales y no tener que escribir todo desde cero, se suelen utilizar frameworks de programación o, incluso si no se quiere programar, se suelen utilizar CMS (Content Management System, Sistema de gestión de contenidos). Muchos de los frameworks y CMS más populares están escritos en PHP.

Esta obra está bajo una licencia de Creative Commons.