PHP es un lenguaje de programación multiparadigma originalmente diseñado para el desarrollo web. Fue creado en 1995 y sigue siendo desarrollado actualmente. PHP permite conectarse a bases de datos y generar contenido dinámico para sitios web de forma gratuita.
1. PHP
Para otros usos de este término, véase PHP (desambiguación).
PHP
Desarrollador(es)
PHP Group
php.net/
Información general
Extensiones
comunes
.php, .phtml .php4 .php3 .php5
.phps
Paradigma
multiparadigma: imperativo,
orientado a objetos, procedural,
reflexivo
Apareció en 1995
Diseñado por Rasmus Lerdorf
Última versión
estable
5.5.12 1
(30 de abril de 2014; hace 29
días)
Tipo de dato dinámico
Influido por C, C++, Perl, Java, Python
Sistema
operativo
Multiplataforma
Licencia Licencia PHP
PHP es un lenguaje de programación de uso general de código del lado del servidor
originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los
primeros lenguajes de programación del lado del servidor que se podían incorporar
directamente en el documento HTML en lugar de llamar a un archivo externo que procese
los datos. El código es interpretado por un servidor web con un módulo de procesador de
PHP que genera la página Web resultante. PHP ha evolucionado por lo que ahora incluye
2. también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas
independientes. Puede ser usado en la mayoría de los servidores web al igual que en casi
todos los sistemas operativos y plataformas sin ningún costo.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue
siendo desarrollado con nuevas funciones por el grupo PHP.2
Este lenguaje forma parte del
software libre publicado bajo la licencia PHP, que es incompatible con la Licencia Pública
General de GNU debido a las restricciones del uso del término PHP.3
Índice
1 Etimología
2 Visión general
3 Historia
o 3.1 Historial de lanzamiento
4 Sintaxis
5 Características de PHP
o 5.1 Características
o 5.2 Inconvenientes
o 5.3 XAMPP, LAMP, WAMP, MAMP, UWAMP
o 5.4 Principales sitios desarrollados con PHP
6 Referencias
7 Enlaces externos
Etimología
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente
PHP Tools, o, Personal Home Page Tools).4
Fue creado originalmente por Rasmus
Lerdorf; sin embargo la implementación principal de PHP es producida ahora por The PHP
Group y sirve como el estándar de facto para PHP al no haber una especificación formal.
Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como
software libre.3
Visión general
PHP puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas
operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en más
de 20 millones de sitios web y en un millón de servidores. El enorme número de sitios en
PHP ha visto reducida su cantidad a favor de otros nuevos lenguajes no tan poderosos
desde agosto de 2005. El sitio web de Wikipedia está desarrollado en PHP.5
Es también el
módulo Apache más popular entre las computadoras que utilizan Apache como servidor
web.
El gran parecido que posee PHP con los lenguajes más comunes de programación
estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones
3. complejas con una curva de aprendizaje muy corta. También les permite involucrarse con
aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de
funciones.
Aunque todo en su diseño está orientado a facilitar la creación de sitios webs, es posible
crear aplicaciones con una interfaz gráfica para el usuario, utilizando alguna extensión
como puede ser PHP-Qt, PHP-GTK,6
WxPHP, WinBinder, Roadsend PHP, Phalanger, Phc
o HiP Hop VM. También puede ser usado desde la línea de comandos, de la misma manera
como Perl o Python pueden hacerlo; a esta versión de PHP se la llama PHP-CLI (Command
Line Interface).7
Cuando el cliente hace una petición al servidor para que le envíe una página web, el
servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el
contenido de manera dinámica (por ejemplo obteniendo información de una base de datos).
El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente.
Mediante extensiones es también posible la generación de archivos PDF,8
Flash, así como
imágenes en diferentes formatos.
Permite la conexión a diferentes tipos de servidores de bases de datos tanto SQL como
NoSQL tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server,
Firebird, SQLite o MongoDB.9
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos,
tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede
interactuar con los servidores de web más populares ya que existe en versión CGI, módulo
para Apache, e ISAPI.
PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# y
Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java,
CGI/Perl y a Node.js/Javascript. Aunque su creación y desarrollo se da en el ámbito de los
sistemas libres, bajo la licencia GNU, existe además un entorno de desarrollo integrado
comercial llamado Zend Studio. CodeGear (la división de lenguajes de programación de
Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado
'Delphi for PHP. También existen al menos un par de módulos para Eclipse, uno de los
entornos más populares.10
Historia
Fue originalmente diseñado en Perl, con base en la escritura de un grupo de CGI binarios
escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año
1994 para mostrar su currículum vítae y guardar ciertos datos, como la cantidad de tráfico
que su página web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page
Tools" después de que Lerdorf lo combinara con su propio Form Interpreter para crear
PHP/FI.
4. Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans, reescribieron el
analizador sintáctico (parser en inglés) en el año 1997 y crearon la base del PHP3,
cambiando el nombre del lenguaje por PHP: Hypertext Preprocessor.2
Inmediatamente
comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio de
1998. Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que
hoy se conoce como motor Zend. También fundaron Zend Technologies en Ramat Gan,
Israel.2
En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend 1.0. El día 13 de julio de
2007 se anunció la suspensión del soporte y desarrollo de la versión 4 de PHP,11
a pesar de
lo anunciado se ha liberado una nueva versión con mejoras de seguridad, la 4.4.8 publicada
el 13 de enero del 2008 y posteriormente la versión 4.4.9 publicada el 7 de agosto de
2008.12
Según esta noticia13
se le dio soporte a fallos críticos hasta el 9 de agosto de 2008.
El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend
Engine 2).2
Incluye todas las ventajas que provee el nuevo Zend Engine 2 como:
Mejor soporte para la programación orientada a objetos, que en versiones anteriores
era extremadamente rudimentario.
Mejoras de rendimiento.
Mejor soporte para MySQL con extensión completamente reescrita.
Mejor soporte a XML (XPath, DOM, etc.).
Soporte nativo para SQLite.
Soporte integrado para SOAP.
Iteradores de datos.
Manejo de excepciones.
Mejoras con la implementación con Oracle.
Historial de lanzamiento
Significado
Rojo Versión antigua, sin soporte
Amarillo Con soporte para errores de seguridad
Verde Con soporte para errores generales y de seguridad
Azul Lanzamiento futuro
Versión
Fecha de
lanzamiento
Fin de
soporte
Notas
1.0 08-06-1995
Llamada oficialmente "Personal Home Page Tools
(PHP Tools)". Es la primera versión en usar el nombre
"PHP".14
2.0 01-11-1997
Considerada por sus creadores la "herramienta más
rápida y sencilla" para crear páginas web dinámicas.14
3.0 06-06-1998 20-10-2000
Zeev Suraski y Andi Gutmans reescribieron la base
para esta versión.14
5. 4.0 22-05-2000 23-01-2001
Se añadió un sistema de parsing de dos fases llamado
motor Zend.15
4.1 10-12-2001 12-03-2002
Se introducen 'superglobales' ($_GET, $_POST,
$_SESSION, etc.)15
4.2 22-04-2002 06-09-2002
Se deshabilitan register_globals por defecto.
Datos recibidos por la red no son insertados en el
espacio de nombres global, cerrando posibles agujeros
de seguridad en las aplicaciones.15
4.3 27-12-2002 31-03-2005 Se introduce CLI, y CGI.15 16
4.4 11-07-2005 07-08-2008 Se añaden páginas man para phpize y php-config.15
5.0 13-07-2004 05-09-2005 Motor Zend II con un nuevo modelo de objetos.17
5.1 24-11-2005 24-08-2006
Mejoras de rendimiento con la introducción de
variables de compilador para el nuevo motor de
PHP.17
5.2 02-11-2006 06-01-2011
Activida extensión de filtro por defecto. Soporte
JSON nativo.17
5.3 30-06-2009 07-201418
Soporte para espacios de nombres, enlace estático en
tiempo de ejecución, etiqueta de salto (goto limitada),
Clausuras nativas, Soporte nativo para archivos PHP
(phar), recolección de basura para referencias
circulares, soporte mejorado para Windows, sqlite3,
mysqlnd como reemplazo a libmysql como biblioteca
para extensiones que funcionan con MySQL, fileinfo
como reemplzado de mime_magic para mejor soporte
MIME, extensión de Internacionalización, y etiqueta
ereg obsoleta.
5.4 01-03-2012
No
especificada
Soporte para Trait y sintaxis abreviada de array.
Elementos removidos: register_globals,
safe_mode, allow_call_time_pass_reference,
session_register(), session_unregister() y
session_is_registered(). Servidor web
incorporado.19
Varias mejoras a características
existentes y al rendimiento, y requerimientos de
memoria menores.
5.5 20-06-2013
No
especificada
Nuevos generadores para bucles, empty() soporta
expresiones. Se pierde el soporte para Windows XP y
Windows Server 2003.20
6.0 Sin fecha
No
especificada
El desarrollo de PHP 6 ha sido retrasado porque los
desarrolladores decidieron que el enfoque actual para
tratar cadenas Unicode no es correcto, y están
considerando formas alternas para la siguiente
versión.21
Las mejoras planeadas para PHP 6 fueron
añadidas en su lugar en PHP 5.3.0 (Soporte para
espacios de nombre, enlace estático en tiempo de
6. ejecución, funciones lambda, clausuras, goto) y 5.4.0
(traits, revinculación de clausura).
Sintaxis
Programa Hola mundo con PHP embebido en código HTML:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<title> Ejemplo básico PHP</title>
</head>
<body>
<?php
echo 'Hola mundo';
?>
</body>
</html>
El intérprete de PHP solo ejecuta el código que se encuentra entre sus delimitadores. Los
delimitadores más comunes son <?php para abrir una sección PHP y ?> para cerrarla. El
propósito de estos delimitadores es separar el código PHP del resto de código, como por
ejemplo el HTML.22
Las variables se prefijan con el símbolo del dólar ($) y no es necesario indicar su tipo. Las
variables, a diferencia de las funciones, distinguen entre mayúsculas y minúsculas. Las
cadenas de caracteres pueden ser encapsuladas tanto en dobles comillas como en comillas
simples, aunque en el caso de las primeras, se pueden insertar variables en la cadena
directamente, sin necesidad de concatenación.
Los comentarios se pueden escribir bien con dos barras al principio de la línea, o con una
almohadilla. También permite comentarios multi-línea encapsulados en /* */.
En cuanto a las palabras clave, PHP comparte con la mayoría de otros lenguajes con
sintaxis C las condiciones con if, los bucles con for y while y los retornos de funciones.
Como es habitual en este tipo de lenguajes, las sentencias deben acabar con punto y coma
(;).
Características de PHP
Características
Orientado al desarrollo de aplicaciones web dinámicas con acceso a información
almacenada en una base de datos.
7. Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se
simplificaron distintas especificaciones, como es el caso de la definición de las
variables primitivas, ejemplo que se hace evidente en el uso de php arrays.
El código fuente escrito en PHP es invisible al navegador web y al cliente, ya que es
el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al
navegador. Esto hace que la programación en PHP sea segura y confiable.
Capacidad de conexión con la mayoría de los motores de base de datos que se
utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
Capacidad de expandir su potencial utilizando módulos (llamados ext's o
extensiones).
Posee una amplia documentación en su sitio web oficial, 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 aplicar técnicas de programación orientada a objetos. Incluso aplicaciones
como Zend framework, empresa que desarrolla PHP, están totalmente desarrolladas
mediante esta metodología.
No requiere definición de tipos de variables aunque sus variables se pueden evaluar
también por el tipo que estén manejando en tiempo de ejecución.
Tiene manejo de excepciones (desde PHP5).
Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la
hora de programar, aún haciéndolo, el programador puede aplicar en su trabajo
cualquier técnica de programación o de desarrollo que le permita escribir código
ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en
PHP se han hecho del patrón de diseño Modelo Vista Controlador (MVC), que
permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz
de usuario en tres componentes independientes.
Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las
aplicaciones WEB de manejo de contenido, y es su uso principal.
Inconvenientes
Como es un lenguaje que se interpreta en ejecución, para ciertos usos puede resultar
un inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una
técnica que puede dificultar la lectura del código pero no necesariamente impide
que el código sea examinado.
Debido a que es un lenguaje interpretado, un script en PHP suele funcionar
considerablemente más lento que su equivalente en un lenguaje de bajo nivel, sin
embargo este inconveniente se puede minimizar con técnicas de caché tanto en
archivos como en memoria.
Las variables al no ser tipificadas dificulta a los diferentes IDEs para ofrecer
asistencias para el tipificado del código, aunque esto no es realmente un
inconveniente del lenguaje en sí. Esto es solventado por Zend Studio añadiendo un
comentario con el tipo a la declaración de la variable.
XAMPP, LAMP, WAMP, MAMP, UWAMP
8. La LAMP comprende PHP (aquí con Squid).
XAMPP es un servidor independiente de plataforma, software libre, que consiste
principalmente en la base de datos MySQL, el servidor Web Apache y los intérpretes para
lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de
los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa está liberado
bajo la licencia GNU y actúa como un servidor Web libre, fácil de usar y capaz de
interpretar páginas dinámicas. Actualmente XAMPP esta disponible para Microsoft
Windows, GNU/Linux, Solaris, y MacOS X.
LAMP presenta una funcionalidad parecida a XAMPP, pero enfocada en Linux, y WAMP
lo hace enfocado en Windows.
Principales sitios desarrollados con PHP
Se utiliza PHP en millones de sitios; entre los más destacados se encuentran Wikipedia.org,
Facebook.com y Wordpress.com.
Referencias
1. «PHP 5.5.12 released» (en inglés). Consultado el 30 de abril de 2014.
2. «Historia de PHP y Proyectos Relacionados» (en español). Consultado el 17 de
octubre de 2012.
3. «Proyecto GNU - Licencias de software libre incompatibles con la GPL» (en
español). Consultado el 17 de octubre de 2012.
4. FAQ General PHP.net.
5. «Historical trends in the usage of server-side programming languages for websites»
(en inglés). W3Techs. Consultado el 10 de septiembre de 2013.
6. «PHP-GTK» (en inglés). PHP Group. Consultado el 10 de septiembre de 2013.
7. «PHP: Funcionamiento en línea de comandos» (en español). PHP Group.
Consultado el 10 de septiembre de 2013.
8. «dompdf - HTML to PDF converter (PHP5)» (en inglés). Consultado el 10 de
septiembre de 2013.
9. «PHP: Extensiones de bases de datos - Manual» (en español). PHP Group.
Consultado el 10 de septiembre de 2013.
10. Existen tanto PHPEclipse como PDT for Eclipse. Véanse
http://www.phpeclipse.com y http://www.eclipse.org/pdt
9. 11. PHP: News Archives 2007 (en inglés). Consultado 9 de diciembre de 2007.
12. PHP: News Archives 2008 (en inglés).
13. Archivo: 13 Julio de 2007 PHP.net.
14. «History of PHP and related projects». The PHP Group. Consultado el 25 de febrero
de 2008.
15. «PHP: PHP 4 ChangeLog». The PHP Group (3 de enero de 2008). Consultado el 22
de febrero de 2008.
16. «PHP: Using PHP from the command line - Manual:». The PHP Group. Consultado
el 11 de septiembre de 2009.
17. «PHP: PHP 5 ChangeLog». The PHP Group (8 de noviembre de 2007). Consultado
el 22 de febrero de 2008.
18. «News Archive - 2013». PHP. Consultado el 16 de agosto de 2013.
19. «Built-in web server». Consultado el 26 de marzo de 2012.
20. «What has changed in PHP 5.5.x». Consultado el 13 de abril de 2013.
21. «PHP 6: Features, Release Date, Hosting and Download». Consultado el 6 de mayo
de 2011.
22. «PHP: Sintaxis básica». Consultado el 13 de abril de 2013.
m