1.1 Historia de PHP
PHP Tools, FI, Equipo de Construcción, y PHP/FI
PHP tal y como se conoce hoy en día es en realidad el sucesor de un
producto llamado PHP/FI. Creado en 1994 por Rasmus Lerdorf,
la primera encarnación de PHP era un conjunto simple de
ficheros binarios Common Gateway Interface (CGI) escritos en el
lenguaje de programación C. Originalmente utilizado para rastrear visitas
de su currículum online, llamó al conjunto de scripts "Personal
Home Page Tools", más frecuentemente referenciado como "PHP Tools".
Con el paso del tiempo se quiso más funcionalidad, y Rasmus reescribió
PHP Tools, produciendo una implementación más grande y rica.
Este nuevo modelo fue capaz de interaccionar con bases de datos, y mucho más,
proporcionando un entorno de trabajo sobre cuyos usuarios podían desarrollar aplicaciones web
dinámicas sencillas tales como libros de visitas. En junio de 1995, Rasmus publico
el código fuente de PHP Tools, lo que permitió a
los desarrolladores usarlo como considerasen apropiado. Esto también permitió
-y animó- a los usuarios a proporcionar soluciones a los errores del código,
y generalmente a mejorarlo.
En septiembre de ese mismo año, Rasmus amplió PHP y -por un corto
periodo de tiempo- abandonó el nombre de PHP. Ahora, refiriéndose a las
herramientas como FI (abreviatura de "Forms Interpreter"), la nueva implementación
incluía algunas de las funciones básicas de PHP tal y como la conocemos
hoy. Tenía variables como las de Perl, interpretación automática de
variables de formulario y sintaxis incrustada HTML. La sintaxis por sí misma
era similar a la de Perl, aunque mucho más limitada, simple
y algo inconsistente. De hecho, para embeber el código en un
fichero HTML, los desarrolladores tenían que usar comentarios de HTML.1.2 Qué es PHP.
Es un lenguaje para programar scripts del lado del servidor, que
se incrustan dentro del código HTML. Este lenguaje es gratuito y
multiplataforma.
PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo antes de que se envíe la página a través de Internet al cliente. Las páginas que se ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red, y otras tareas para crear la página final que verá el cliente. El cliente solamente recibe una página con el código HTML resultante de la ejecución de la PHP. Como la página resultante contiene únicamente código HTML, es compatible con todos los navegadores. Podemos saber algo más sobre la programación del servidor y del cliente en el artículo qué es DHTML.
Una vez que ya conocemos el concepto de lenguaje de programación de scripts del lado del servidor podemos hablar de PHP. PHP se escribe dentro del código HTML, lo que lo hace realmente fácil de utilizar, al igual que ocurre con el popular ASP de Microsoft, pero con algunas ventajas como su gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede descargar a través de la página principal de PHP www.php.net y de manera gratuita, un módulo que hace que nuestro servidor web comprenda los scripts realizados en este lenguaje. Es independiente de plataforma, puesto que existe un módulo de PHP para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser compatible con el lenguaje y significa una ventaja importante, ya que permite portar el sitio desarrollado en PHP de un sistema a otro sin prácticamente ningún trabajo.
PHP, en el caso de estar montado sobre un servidor Linux u Unix, es más rápido que ASP, dado que se ejecuta en un único espacio de memoria y esto evita las comunicaciones entre componentes COM que se realizan entre todas las tecnologías implicadas en una página ASP.
Por último señalábamos la seguridad, en este punto también es importante el hecho de que en muchas ocasiones PHP se encuentra instalado sobre servidores Unix o Linux, que son de sobra conocidos como más veloces y seguros que el sistema operativo donde se ejecuta las ASP, Windows NT o 2000. Además, PHP permite configurar el servidor de modo que se permita o rechacen diferentes usos, lo que puede hacer al lenguaje más o menos seguro dependiendo de las necesidades de cada cual.
Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP está desarrollado en política de código abierto, a lo largo de su historia ha tenido muchas contribuciones de otros desarrolladores. Actualmente PHP se encuentra en su versión 4, que utiliza el motor Zend, desarrollado con mayor meditación para cubrir las necesidades de las aplicaciones web actuales.
1.3 características del lenguaje PHP .
¿Debería aprender PHP? Esa es la pregunta del millón. Ya han sido algunas ocasiones que he recomendado dominar el abanico de los lenguajes web (HTML, CSS, PHP, SQL y JavaScript).
No sólo por el hecho de que hay trabajo de ello, por lo que con los
tiempos que corren en el mundo laboral, es algo que tenéis ganado.
También por la potencia que le vais a dar a vuestras webs. Pero dejando
de lado el factor formativo, necesitaremos de tal cuando deseemos que
nuestros HTML se alimenten de los datos de un servidor.
Pondré, por ejemplo, una vez más, la
tienda online. Los productos que tenemos en nuestro almacén no siempre
son los mismos. Varían y eso causa que los datos también lo hagan. Si
nuestra web es estática (no se modifica de manera automática), somos
nosotros, los desarrolladores, los que debemos introducir los nuevos
datos para que se visualicen. Gracias a PHP y su habilidad para
conectarse a un servidor, podemos generar un pequeño código que haga
esto por nosotros y ahorrarnos trabajo. Esta es la característica más
notable del lenguaje: la conexión a un servidor para acceder a los
datos. Os gustará saber que es un lenguaje fácil de aprender. No es
especialmente complejo y comparte sintaxis con otros que podáis haber
visto anteriormente, como por ejemplo JavaScript (su vecino en este mundo). Vamos a repasar con una lista qué podemos hacer con PHP.
1. Gran extensión de documentación
Ya sea creada de manera oficial como por los usuarios, PHP
tiene la ventaja de ser usado por millones de usuarios en muchos
proyectos. De cara al nuevo programador es una gran ventaja porqué no
hay nada mejor que un lenguaje con una gran comunidad detrás, sobre todo
para los no tan afines al idioma anglosajón.
2. Variedad de herramientas para aprender
Tenemos varios métodos para iniciarnos:
podemos contratar un servidor remoto para subir nuestros archivos, como
haríamos con cualquier web, lo cual tiene lógica ya que si tenéis
vuestro sitio en la red ya tenéis este recurso con vosotros; podemos
crear un servidor local con una máquina virtual, o lo más popular entre
los alumnos: descargar la herramienta libre WAMP (XAMP o LAMP en función de si es para Mac OSX o Linux). Esta herramienta simula que vuestra máquina local es un servidor web para poder ejecutar los ficheros PHP.
Es decir, sea cual sea vuestra situación, es imposible que os quedéis
fuera, sobretodo teniendo en cuenta que no requiere un entorno de
desarrollo complejo, como ocurre con Titanium.
3. Mucha oferta de trabajo
Hoy en día las webs más complejas funcionan bajo PHP, por lo que son muchas las empresas que requieren los servicios de un desarrollador de este lenguaje.
4. Permite programación orientada a objetos
Esto significa que podréis dividir
vuestros scripts en métodos, clases, etc. para hacer más ágil de cara al
servidor el procesamiento de los datos.
5. Módulos externos para mejorar la aplicación web
Gracias a esto, podréis implementar
funcionalidades que de por sí no existen, siendo una gran solución a
vuestras necesidades. Por ejemplo, en vez de programar de cero una
pantalla de registro, podéis usar un módulo ya hecho. Esto no sería
posible si no fuese orientado a objetos, como menciono en el punto
anterior.
6. Se puede separar la estructura
Con esto quiero decir que podéis tener de
manera independiente el código que se encarga de mover los datos del que
se enlaza a la interfaz. Esto se conoce como Modelo Vista/Controlador
(MVC). Gracias a esta característica, no “contaminaremos” código con
líneas innecesarias y lo mantendremos limpio y ordenado.
7. La libertad es un bien muy preciado
Si, PHP es totalmente libre y multi-plataforma,
por lo que no importa que sistema operativo uséis. Su desarrollo es
posible en cualquier sitio (siempre y cuando la máquina sea capaz de
ejecutar el código).
Como podéis ver, cuando PHP salió
a la luz, nunca un lenguaje web llegó a ser tan potente y lleno de
posibilidades, y aún hoy en día se usa en todo el mundo. Sin ir más
lejos, ¿cómo creéis que Facebook maneja tantos datos y es capaz
de mover una web dinámica tan grande? O, por poner otro ejemplo, ya que
muchas veces hemos hablado de él, Wordpress funciona bajo PHP.
1.4 Funcionamiento del PHP
USO DEL PHP
Los principales usos del PHP son los siguientes:
- Programación de páginas web dinámicas, habitualmente en combinación con el motor de base datos MySQL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de conexión.
- Programación en consola, al estilo de Perl o Shell scripting.
- Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y Qt/GTK+, lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado.
- Es un lenguaje multiplataforma.
- Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL
- Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML.
- Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext’s o extensiones).
- Posee una amplia documentación en su página oficial ([1]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
- Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
- Permite las técnicas de Programación Orientada a Objetos.
- Permite crear los formularios para la web.
- Biblioteca nativa de funciones sumamente amplia e incluida
- No requiere definición de tipos de variables ni manejo detallado del bajo nivel.
<html> <head> <title>Ejemplo</title> </head> <body> <?php if (isset($_POST['muestra'])) { echo 'Hola, '.htmlentities($_POST['nombre']) .', tu comida favorita es:'. htmlentities($_POST['comida']); } else { ?> <form method="POST" action="?"> ¿Cuál es tu nombre? <input type="text" name="nombre"> ¿Cuál es tu comida favorita? <select name="comida"> <option>Spaguetis</option> <option>Asado</option> <option>Pizza</option> </select> <input type="submit" name="muestra" value="Seguir"> </form> <?php } ?> </body> </html>En este código es posible observar las siguientes características:
- Las variables enviadas por un formulario utilizando el método POST, son recibidas en el lenguaje dentro de la matriz
$_POST
, lo cual facilita la obtención de este tipo de datos. Este mismo método es utilizado por el lenguaje para todas las fuentes de información en una aplicación web, tales como cookies en la matriz$_COOKIES
, variables de URL en$_GET
(que en formularios puede servir para guardar los datos), variables de sesión utilizando$_SESSION
, y variables del servidor y del cliente por medio de la matriz$_SERVER
. - El código PHP está incrustado dentro del HTML e interactúa con el mismo, lo que permite diseñar la página Web en un editor común de HTML y añadir el código dinámico dentro de las etiquetas
<?php ?>
. - El resultado muestra y oculta ciertas porciones del código HTML en forma condicional.
- Es posible utilizar funciones propias del lenguaje para aplicaciones Web como
htmlentitites()
, que convierte los caracteres que tienen algún significado especial en el código HTML o que podrían desplegarse erróneamente en el navegador como acentos o diéresis, en sus equivalentes en formato HTML..
1.5 Arquitectura de PHP.
El complemento de caché de consultas está implementado como una extensión de PHP.
Está escrita en C y opera bajo el manto de PHP. Durante el
arraque del intérprete de PHP, se registra como un complemento de
mysqlnd para reemplazar a los métodos
en C de mysqlnd seleccionados. Por lo tanto, se puede cambiar el comportamiento de cualquier
extensión de MySQL para PHP (mysqli,
PDO_MYSQL,
mysql) compilada para usar la
biblioteca mysqlnd sin cambiar la API de la extensión. Esto hace que
el complemento sea compatible con cada una de las aplicaciones de MySQL para PHP.
Ya que las APIs existentes no se cambian, es casi transparente
de usar. Por favor, véase la
descripción de la API de complementos de mysqlnd
para una discusión sobre las ventajas de la arquitectura del complemento y
una comparación con soluciones basadas en proxy.
Transparente de usar
En tiempo de ejecución de PHP, PECL/mysqlnd_qc puede representar a consultas enviadas desde PHP
(mysqlnd) al servidor MySQL.
Luego inspecciona la sentencia para buscar si puede almacenar en caché
sus resultados. Si puede, el conjunto de resultados se almacena en caché usando un gestor de
almacenamiento, por lo que ejecuciones posteriores de la sentencia se servirán desde la caché por
un periodo definido por el usuario. El tiempo de vida (TTL) de una entrada de la caché
se puede establecer globalmente o en función de cada sentencia.
Una sentencia será almacena en caché si al complemento se le indica que almacene todas
las sentencias globalmente, o si la consulta comienza con la sugerencia SQL
(/*qc=on*/). El complemento puede almacenar en caché cualquier
consulta emitida invocando a las llamadas apropiadas a la API de cualquier extensión existente
de MySQL para PHP.
Almacenamiento flexible: distintos gestores de almacenamiento
Se admiten distintos gestores de almacenamiento para ofrecer diferentes ámbitos para las entradas
de la caché. Los diferentes ámbitos tienen en cuenta diferentes grados de compartir las
entradas de la caché entre clientes.
-
default (interno): memoria del proceso, ámbito: proceso, una o más peticiones web dependiendo del modelo de desarrollo de PHP usado
-
APC: memoria compartida, ámbito: servidor único, múltiples peticiones web
-
SQLite: memoria o fichero, ámbito: servidor único, múltiples peticiones web
-
MEMCACHE: memoria principal, ámbito: servidor único o varios, múltiples peticiones web
-
user (interno): definido por el usuario - cualquiera, ámbito: definido por el usuario - cualquiera
El soporte para los gestores de almacenamiento APC, SQLite
y MEMCACHE ha de estar habilitado en tiempo de compilación. Los gestores
default y user son internos. Es posible
intercambiar entre gestores de almacenamiento compilados en función a cada consulta en tiempo de ejecución.
Sin embargo, se recomienda elegir un gestor de almacenamiento y usarlo para todas las entradas de la caché.
Defensa de cierre interna para evitar la sobrecarga
Para evitar situaciones de sobrecarga, el complemento de caché posee un mecanismo de defensa de cierre interna.
Si una entrada de la caché expira, muchos cliente que usen las entradas de la caché intentarán
refrescar dicha entrada. Durante el refresco, muchos clientes podrían acceder
al servidor de bases de datos de forma concurrente. En el peor caso, el servidor de bases de datos
se sobrecargará y le llevará cada vez más tiempo refrescar la entradas de la caché, las cuales,
de una en una, permiten que más y más clientes intenten refrescar dichas entradas. Para evitar
que ocurra esto, el complemento posee un mecanismo de defensa de cierre interna. Si se habilita dicha
defensa y el complemento detecta que una entrada de la caché ha expirado, ampliará el tiempo de vida
de dicha entrada antes de refrescar las entradas de la caché. De esta manera, otros accesos
concurrentes a la entrada de la caché expirada aún los sirve la caché por un cierto
tiempo. Los demás accesos concurrentes no desencadenan un refresco concurrente. Lo ideal sería
que las entradas de la caché fueran refrescadas por el cliente, el cual ampliaría el periodo de vida de las entradas
de la caché antes de que otros clientes intenten refrescar la caché y ocasionar potencialmente
una situación de sobrecarga.1.6 Como utiliza PHP
¿Qué es PHP?
PHP es un lenguaje de script múltiple, que a diferencia de por ejemplo Javascript, es ejecutado en el servidor y por tanto no permanece bajo el control del navegador. Frecuentemente los campos de entrada están en otros foros, formularios, sistema de redacción, libro de visitas y máquinas de búsqueda. Para estos y otros campos de entrada existen cientos de Scripts PHP libres disponibles en internet. Con PHP tienes la posibilidad de consultar contenidos de la Base de Datos-MySQL por ejemplo, y así añadirlos a tu página web.
Perl es otro lenguaje de script. Se diferencia del PHP en una primera fase, ya que con PHP tu código Script puede intercalarse en tus páginas HTML. De esta forma podrás separar diseño y programación. El mismo código Script, será ejecutado en el servidor de manera que no se transmita al navegador. Por lo tanto, la versión del navegador no es relevante.
PHP es un lenguaje de script múltiple, que a diferencia de por ejemplo Javascript, es ejecutado en el servidor y por tanto no permanece bajo el control del navegador. Frecuentemente los campos de entrada están en otros foros, formularios, sistema de redacción, libro de visitas y máquinas de búsqueda. Para estos y otros campos de entrada existen cientos de Scripts PHP libres disponibles en internet. Con PHP tienes la posibilidad de consultar contenidos de la Base de Datos-MySQL por ejemplo, y así añadirlos a tu página web.
Perl es otro lenguaje de script. Se diferencia del PHP en una primera fase, ya que con PHP tu código Script puede intercalarse en tus páginas HTML. De esta forma podrás separar diseño y programación. El mismo código Script, será ejecutado en el servidor de manera que no se transmita al navegador. Por lo tanto, la versión del navegador no es relevante.
El
código PHP se integra en una página HTML, entre los símbolos de
resultado . Los comandos PHP irán dentro de las áreas PHP (por regla
general con un punto y coma).
También podrás colocar tus páginas web dentro de un Editor HTML gráfico e introducir los códigos en modo HTML dentro de un editor de texto. Los datos se guardarán con la extensión ".html", ".php" o ".php5", así el servidor reconocerá de inmediato que se trata de un Script-PHP. Carga entonces la página de Internet con el Script-PHP mediante un programa FTP a nuestro servidor.
También podrás colocar tus páginas web dentro de un Editor HTML gráfico e introducir los códigos en modo HTML dentro de un editor de texto. Los datos se guardarán con la extensión ".html", ".php" o ".php5", así el servidor reconocerá de inmediato que se trata de un Script-PHP. Carga entonces la página de Internet con el Script-PHP mediante un programa FTP a nuestro servidor.
No hay comentarios:
Publicar un comentario