PHP fue
creado originalmente por Rasmus
Lerdorf en
1995. Actualmente el lenguaje sigue siendo desarrollado con nuevas
funciones por el grupo PHP.1 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.2
Visión general
PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools).3Fue creado originalmente por Rasmus Lerdorf en 1994; 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.
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 número de sitios en PHP ha compartido
algo de su preponderante dominio con otros nuevos lenguajes no tan
poderosos desde agosto de 2005. El sitio web de Wikipedia está
desarrollado en PHP. 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 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 la extensión PHP-Qt o PHP-GTK.
También puede ser usado desde la línea
de órdenes,
de la misma manera como Perl o Python pueden
hacerlo; a esta versión de PHP se la llama PHP-CLI (Command
Line Interface).
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, Flash,
así como imágenes en diferentes formatos.
Permite
la conexión a diferentes tipos de servidores de bases de datos tales
como MySQL, PostgreSQL, Oracle, ODBC, DB2,Microsoft
SQL Server, Firebird y SQLite.
PHP
también tiene la capacidad de ser ejecutado en la mayoría de
los sistemas
operativos,
tales como Unix (y
de ese tipo, comoLinux 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), aColdFusion de
la empresa Adobe,
a JSP/Java y
a CGI/Perl.
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.4
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 programadordané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.
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 Preprocessor1 .
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, Israel1 .
En
mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend
Engine 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,5 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.6 Según
esta noticia7 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)1 .
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.
- Iteradores de datos.
Historial de lanzamiento
Significado
|
|
---|---|
Rojo
|
Sin soporte
|
Verde
|
Con soporte
|
Azul
|
Lanzamiento futuro
|
Versión mayor
|
Versión menor
|
Fecha de
lanzamiento
|
Notas
|
---|---|---|---|
1
|
1.0.0
|
1995-06-08
|
Llamada oficialmente "Personal Home Page Tools (PHP Tools)".
Es la primera versión en usar el nombre "PHP".8
|
2
|
2.0.0
|
1997-11-01
|
Considerada por sus creadores la "herramienta más rápida y
sencilla" para crear páginas web dinámicas.8
|
3
|
3.0.0
|
1998-06-06
|
Zeev Suraski y Andi Gutmans reescribieron la base para esta
versión.8
|
4
|
4.0.0
|
2000-05-22
|
Se añadió un sistema de parsing de dos fases llamado motor
Zend.9
|
4.1.0
|
2001-12-10
|
||
4.2.0
|
2002-04-22
|
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.9 |
|
4.3.0
|
2002-12-27
|
||
4.4.0
|
2005-07-11
|
||
4.4.9
|
2008-08-07
|
||
5
|
5.0.0
|
2004-07-13
|
Motor Zend II con un nuevo modelo de objetos.13
|
5.1.0
|
2005-11-24
|
Mejoras de rendimiento con la introducción de variables de
compilador para el nuevo motor de PHP.13
|
|
5.2.0
|
2006-11-02
|
||
5.2.17
|
2011-01-06
|
Arreglo de vulnerabilidad
crítica conectada a punto flotante.
|
|
5.3.0
|
2009-06-30
|
Soporte para espacios de
nombres, enlace estático en tiempo de ejecución, etiqueta de
salto (gotolimitada), 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.3.1
|
2009-11-19
|
Cerca de 100 bug
fixes.
|
|
5.3.2
|
2010-03-04
|
Gran número de bug fixes.
|
|
5.3.3
|
2010-07-22
|
Mayoritariamente arreglo de
errores; FPM SAPI.
|
|
5.3.4
|
2010-12-10
|
Mejoras a FPM SAPI.
|
|
5.3.5
|
2011-01-06
|
Arreglo de vulnerabilidad
crítica relacionada a punto flotante.
|
|
5.3.6
|
2011-03-10
|
Cerca de 60 bug fixes.
|
|
5.3.7
|
2011-08-18
|
Esta versión se enfoca en
la estabilidad con cerca de 90 bug fixes, algunos de los cuales
tienen implicaciones a la seguridad.
|
|
5.3.8
|
2011-08-23
|
Esta versión arregla dos
errores introducidos por la versión 5.3.7.
|
|
5.3.9
|
2012-01-10
|
Esta versión se enfoca en
la estabilidad con cerca de 90 bug fixes, algunos de los cuales
tienen implicaciones a la seguridad.
|
|
5.3.10
|
2012-02-02
|
Arreglo de vulnerabilidad de
ejecución de código arbitrario reportada por Stefan Esser,
CVE-2012-0830.
|
|
5.3.13
|
2012-05-08
|
Arreglo de vulnerabilidad
para instalaciones basadas en CGI.
|
|
5.4.0
|
2012-03-01
|
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.14 Varias
mejoras a características existentes y al rendimiento, y
requerimientos de memoria menores. |
|
5.4.1
|
2012-04-26
|
Varios bug fixes y mejoras
de seguridad.
|
|
5.4.2
|
2012-05-03
|
Parche de seguridad para
arreglar vulnerabilidad del parámetro query string de PHP-CGI.
|
|
5.4.3
|
2012-05-08
|
Arreglo de vulnerabilidad
para instalaciones basadas en CGI y también para la
vulnerabilidad de desbordamiento de búfer para
apache_request_headers()
|
|
6
|
?.?
|
Sin fecha
|
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.15 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 ejecución, funciones lambda, clasuras, goto) y 5.4.0 (traits,
revinculación de clausura).
|
Características de PHP
<html> <head> <meta charset="utf-8" /> <title> Ejemplo basico PHP</title> </head> <body> <?php echo 'Hola mundo'; ?> </body> </html>
Características
- Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos.
- 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.
- 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.
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 cache tanto en archivos como en memoria.
- Las variables al no ser tipadas dificulta a los diferentes IDEs para ofrecer asistencias para el tipeado 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
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 XAMP, pero enfocada en Linux, y WAMP lo
hace enfocado en Windows.
Principales sitios desarrollados con PHP
PHP
es utilizado en millones de sitios, entre los más destacados se
encuentran wikipedia.org, facebook.com y Wordpress.com.
Fuente: Wikipedia
No hay comentarios:
Publicar un comentario