¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

Diferencia entre revisiones de «PHP»

(Enlaces externos)
Línea 1: Línea 1:
==PHP==
+
{{Aplicación|nombre=Php|logo=Php.png|descripcion=Lenguaje de programación|creador=PHP Goup|fecha_de_creacion=[[1995]]|sitio_web=[http://www.php.net www.php.net Sitio oficial]}}'''PHP'''.Lenguaje de programación, lenguaje interpretado, diseñado originalmente para la creación de Página web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con [[Interfaz gráfica de usuario|interfaz gráfica]] usando las bibliotecas [[Qt (biblioteca)|Qt]] o [[GTK+]].  
{{Ficha de lenguaje de programación
 
|nombre = PHP
 
|logo = [[Archivo:PHP-logo.svg|170px]]
 
|paradigma = [[Lenguaje de programación multiparadigma|multiparadigma]]
 
|año = 1995
 
|diseñador = [[PHP Group]]
 
|desarrollador =
 
|última_versión = 5.3.1
 
|fecha_última_versión = 19 de noviembre de 2009
 
|tipo_dato = dinámico
 
|implementaciones =
 
|dialectos =
 
|influido_por = [[Lenguaje de programación C|C]], [[C++]], [[Perl]], [[Lenguaje de programación Java|Java]], [[Python]]
 
|ha_influido =
 
|sistema_operativo = [[Multiplataforma]]
 
|licencia = [http://www.php.net/license/3_01.txt PHP License 3.01]
 
|web = [http://www.php.net www.php.net]
 
}}
 
  
'''PHP''' es un [[lenguaje de programación]] [[lenguaje interpretado|interpretado]], diseñado originalmente para la creación de [[página web|páginas web]] dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con [[interfaz gráfica de usuario|interfaz gráfica]] usando las bibliotecas [[Qt (biblioteca)|Qt]] o [[GTK+]].
+
PHP es un [[Acrónimo recursivo]] que significa '''''P'''HP '''H'''ypertext '''P'''re-processor'' (inicialmente PHP Tools, o, ''P''ersonal ''H''ome ''P''age Tools). Fue creado originalmente por [[Rasmus Lerdorf]] en [[1994|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.  
  
PHP es un [[acrónimo recursivo]] que significa '''''P'''HP '''H'''ypertext '''P'''re-processor'' (inicialmente PHP Tools, o, ''P''ersonal ''H''ome ''P''age Tools). Fue 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.
+
== Visión general  ==
  
== Visión general ==
+
PHP es un lenguaje interpretado de propósito general ampliamente usado, diseñado especialmente para desarrollo web y que puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno.  
PHP es un lenguaje interpretado de propósito general ampliamente usado, diseñado especialmente para desarrollo web y que puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. 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 sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo 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. La versión más reciente de PHP es la 5.3.2 (for Windows) del 04 de Marzo de 2010.
 
  
El gran parecido que posee PHP con los lenguajes más comunes de [[programación estructurada]], como [[Lenguaje de programación C|C]] y [[Perl]], permiten a la mayoría de los [[programador]]es 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.
+
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 sitio con otros nuevos lenguajes no tan poderosos desde [[Agosto|agosto]] de [[2005]]. Este mismo 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. La versión más reciente de PHP es la 5.3.2 (for Windows) del [[4 de marzo]] de [[2010]].  
  
Aunque todo en su diseño está orientado a facilitar la creación de página web, es posible crear aplicaciones con una [[interfaz gráfica de usuario|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'').
+
El gran parecido que posee PHP con los lenguajes más comunes de [[Programación estructurada]], como [[Lenguaje de programación C|C]] y [[Perl]], permiten a la mayoría de los [[Programador]]es 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.  
  
Cuando el cliente hace una petición al servidor para que le envíe una [[página web]], el servidor ejecuta el [[intérprete (informática)|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.
+
Aunque todo en su diseño está orientado a facilitar la creación de página web, es posible crear aplicaciones con una [[Interfaz gráfica de usuario|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'').  
  
Permite la conexión a diferentes tipos de servidores de bases de datos tales como [[MySQL]], [[Postgres]], [[Oracle]], [[ODBC]], [[DB2]], [[Microsoft SQL Server]], [[Firebird]] y [[SQLite]].
+
Cuando el cliente hace una petición al servidor para que le envíe una [[Página web]], el servidor ejecuta el [[Intérprete (informática)|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.  
  
PHP también tiene la capacidad de ser ejecutado en la mayoría de los [[sistema operativo|sistemas operativos]], tales como [[UNIX]] (y de ese tipo, como [[Linux]] o [[Mac OS X]]) y [[Windows]], y puede interactuar con los [[servidor web|servidores de web]] más populares ya que existe en versión [[CGI]], módulo para [[Servidor HTTP Apache|Apache]], e [[ISAPI]].
+
Permite la conexión a diferentes tipos de servidores de bases de datos tales como [[MySQL]], [[Postgres]], [[Oracle]], [[ODBC]], [[DB2]], [[Microsoft SQL Server]], [[Firebird]] y [[SQLite]].  
  
PHP es una alternativa a las tecnologías de [[Microsoft]] [[ASP]] y [[ASP.NET]] (que utiliza [[C Sharp|C#]] [[VB.NET]] como lenguajes), a [[ColdFusion]] de la compañía [[Adobe]] (antes [[Macromedia]]), a [[JSP]]/[[Lenguaje de programación Java|Java]] de [[Sun Microsystems]], y a [[Common Gateway Interface|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 IDE ([[entorno de desarrollo integrado]]) comercial llamado [[Zend Studio]]. Recientemente, [[CodeGear]] (la división de lenguajes de programación de [[Borland]]) ha sacado al mercado un [[entorno integrado de desarrollo]] para PHP, denominado '''Delphi for PHP'''. Existe un módulo para [[Eclipse (software)|Eclipse]], uno de los IDE más populares.
+
PHP también tiene la capacidad de ser ejecutado en la mayoría de los [[Sistema operativo|sistemas operativos]], tales como [[UNIX]] (y de ese tipo, como [[Linux]] o [[Mac OS X]]) y [[Windows]], y puede interactuar con los [[Servidor web|servidores de web]] más populares ya que existe en versión [[CGI]], módulo para [[Servidor HTTP Apache|Apache]], e [[ISAPI]].  
  
== Historia ==
+
PHP es una alternativa a las tecnologías de [[Microsoft]] [[ASP]] y [[ASP.NET]] (que utiliza [[C Sharp|C#]] [[VB.NET]] como lenguajes), a [[ColdFusion]] de la compañía [[Adobe]] (antes [[Macromedia]]), a [[JSP]]/[[Lenguaje de programación Java|Java]] de [[Sun Microsystems]], y a [[Common Gateway Interface|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 IDE ([[Entorno de desarrollo integrado]]) comercial llamado [[Zend Studio]]. Recientemente, [[CodeGear]] (la división de lenguajes de programación de [[Borland]]) ha sacado al mercado un [[Entorno integrado de desarrollo]] para PHP, denominado '''Delphi for PHP'''. Existe un módulo para [[Eclipse (software)|Eclipse]], uno de los IDE más populares.
  
Fue originalmente diseñado en [[Perl]], con base en la escritura de un grupo de [[Common Gateway Interface|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 vitae]] 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 "'''P'''ersonal '''H'''ome '''P'''age Tools" después de que Lerdorf lo combinara con su propio ''Form Interpreter'' para crear PHP/FI.
+
== Historia  ==
  
=== PHP 3 ===
+
Fue originalmente diseñado en [[Perl]], con base en la escritura de un grupo de [[Common Gateway Interface|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 vitae]] 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 "'''P'''ersonal '''H'''ome '''P'''age 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 a la forma actual. Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio del [[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]].
+
=== PHP 3  ===
  
=== PHP 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 a la forma actual. Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio del [[1998]].  
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,<ref>[http://www.php.net/archive/2007.php PHP: News Archives 2007] (en inglés) Consultado 9 de diciembre de 2007</ref> 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.<ref>[http://www.php.net/archive/2008.php#id2008-08-07-1 PHP: News Archives 2008] (en inglés)</ref> Según esta noticia [http://www.php.net/archive/2007.php#2007-07-13-1] se dará soporte a fallos críticos hasta el 2008-08-09,......
 
  
=== PHP 5 ===
+
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]].
El [[13 de julio]] de [[2004]], fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). La versión más reciente de PHP es la 5.3.1 (19 de noviembre de [[2009]]), que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:
 
  
* Mejor soporte para la [[OOP|Programación Orientada a Objetos]], que en versiones anteriores era extremadamente rudimentario, con [[PHP Data Objects]].
+
=== PHP 4  ===
* 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]].
 
* [[Iterador (patrón de diseño)|Iteradores]] de datos.
 
* [[Manejo de excepciones]].
 
* Mejoras con la implementación con [[Oracle]].
 
  
Aún se siguen publicando versiones de la rama 5.2.X, siendo publicada la versión 5.2.12 el 17 de diciembre de [[2009]], aunque la mayoría son actualizaciones de seguridad
+
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. <ref>[http://www.php.net/archive/2007.php Sitio Oficial] PHP: News Archives 2007] (en inglés) Consultado 9 de diciembre de 2007&amp;lt;/ref&amp;gt; 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</ref>
  
=== PHP 6 ===
+
=== PHP 5 ===
Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance esta nueva versión quedarán solo dos ramas activas en desarrollo (PHP 5 y 6), pues se abandonó el desarrollo y soporte de PHP 4 el [[13 de julio]] de [[2007]].<ref name="notasReunion2005">{{Cita web
 
| url = http://www.php.net/~derick/meeting-notes.html
 
| título = Minutes PHP Developers Meeting
 
| ubicación = París
 
| fecha = 12 de noviembre de 2005
 
| fechaacceso = 15 de enero de 2010
 
}}</ref>
 
  
Las diferencias que encontraremos frente a PHP 5.* son:
+
El [[13 de julio]] de [[2004]], fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). La versión más reciente de PHP es la 5.3.1 (19 de noviembre de [[2009]]), que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:  
  
* Soportará [[Unicode]];
+
*Mejor soporte para la [[OOP|Programación Orientada a Objetos]], que en versiones anteriores era extremadamente rudimentario, con [[PHP Data Objects]].
* limpieza de funcionalidades obsoletas como ''register_globals'', ''safe_mode'', etc;
+
*Mejoras de rendimiento.
* PECL y eliminación de soporte ereg;
+
*Mejor soporte para [[MySQL]] con extensión completamente reescrita.
* mejoras en [[Programación orientada a objetos|orientación a objetos]];
+
*Mejor soporte a [[XML]] ( XPath, DOM, etc. ).
* inclusión en el núcleo de ''xmlReader'' y ''xmlWriter'' así como ''Fileinfo'';
+
*Soporte nativo para [[SQLite]].
* <tt>return</tt> por referencia devolverá un error;
+
*Soporte integrado para [[SOAP]].
* se elimina el soporte de las librerías ''[[FreeType]]1'' y ''[[GD2]]1'';
+
*[[Iterador (patrón de diseño)|Iteradores]] de datos.
* etc.
+
*[[Manejo de excepciones]].
 +
*Mejoras con la implementación con [[Oracle]].
  
== Características de PHP ==
+
Aún se siguen publicando versiones de la rama 5.2.X, siendo publicada la versión 5.2.12 el 17 de diciembre de [[2009]], aunque la mayoría son actualizaciones de seguridad
=== Ventajas ===
 
* Es un [[multiplataforma|lenguaje multiplataforma]].
 
* Completamente orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una Base de Datos.
 
* El código fuente escrito en PHP es invisible al navegador 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 la enorme cantidad de módulos (llamados ext's o extensiones).
 
* Posee una amplia documentación en su página oficial ([http://www.php.net/manual/es/]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
 
* Es [[Software libre|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]].
 
* Biblioteca nativa de funciones sumamente amplia e incluida.
 
* 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 (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o 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]]''' (o MVC), que permiten separar el tratamiento y acceso a los [[dato]]s, la [[lógica de control]] y la [[interfaz de usuario]] en tres componentes independientes (ver más abajo '''[[PHP#Frameworks en PHP|Frameworks en PHP]]''').
 
  
=== Inconvenientes ===
+
=== PHP 6  ===
  
* La [[ofuscación]] de código es la única forma de ocultar los fuentes.
+
Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance esta nueva versión quedarán solo dos ramas activas en desarrollo (PHP 5 y 6), pues se abandonó el desarrollo y soporte de PHP 4 el [[13 de julio]] de [[2007]]. <ref>Según esta noticia [http://www.php.net/archive/2007.php#2007-07-13-1] se dará soporte a fallos críticos hasta el 2008-08-09,......</ref>
  
== Ejemplo de código PHP ==
+
Las diferencias que encontraremos frente a PHP 5. son:  
En el siguiente ejemplo se muestra el típico [[Hola Mundo]], que es una simple impresión por pantalla del mismo mensaje:
 
<source lang="php">
 
<?php
 
$a = 'hola mundo';
 
echo $a;
 
?>
 
</source>
 
El ejemplo anterior escribiría simplemente "Hola Mundo" (sin comillas) en la página web. Es importante recordar que todo bloque de código PHP debe estar dentro de <?php(para abrir) y ?>(para cerrar) o simplemente de una forma más corta <? <CÓDIGO_PHP> ?> -siempre que la directiva ''short_open_tag'' esté activada-<ref>Manual de Referencia PHP, ''Description of core php.ini directives''</ref>, muy parecido a las etiquetas en [[Active Server Pages|ASP]] <% <CÓDIGO_ASP> %>. Ahora bien, el resultado que tendríamos en el navegador sería el siguiente:
 
  
Hola Mundo
+
*Soportará [[Unicode]];
 +
*limpieza de funcionalidades obsoletas como ''register_globals'', ''safe_mode'', etc;
 +
*PECL y eliminación de soporte ereg;
 +
*mejoras en [[Programación orientada a objetos|orientación a objetos]];
 +
*inclusión en el núcleo de ''xmlReader'' y ''xmlWriter'' así como ''Fileinfo'';
  
A continuación un ejemplo de envío y recepción de datos en una misma página con PHP:
+
por referencia devolverá un error;
  
<source lang="php">
+
*se elimina el soporte de las librerías ''[[FreeType]]1'' y ''[[GD2]]1'';  
<html>
+
*etc.
<head>
 
    <title>Ejemplo de uso simple en envío y recepción de parámetros con PHP</title>
 
</head>
 
<body>
 
<?php
 
// Si existe la variable $_POST['muestra'], entonces muestra la comida favorita
 
if (isset($_POST['muestra']))
 
    {
 
          echo 'Hola, '.$_POST['nombre'].', tu comida favorita es: '. $_POST['comida'].'';
 
    } else {
 
// Si no, muestra un formulario solicitando la comida favorita
 
?>
 
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
 
    ¿Cuál es tu nombre?
 
    <input type="text" name="nombre" />
 
    ¿Cuál es tu comida favorita?
 
    <select name="comida">
 
        <option value="Spaguetis">Spaguetis</option>
 
        <option value="Asado">Asado</option>
 
        <option value="Pizza">Pizza</option>
 
    </select>
 
    <input type="submit" name="muestra" value="Seguir" />
 
</form>
 
  
<?php
+
== Características de PHP  ==
  
            } //Fin del bloque else
+
=== Ventajas  ===
?>
 
  
</body>
+
*Es un [[Multiplataforma|lenguaje multiplataforma]].
</html>
+
*Completamente orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una Base de Datos.
</source>
+
*El código fuente escrito en PHP es invisible al navegador 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 la enorme cantidad de módulos (llamados ext's o extensiones).
 +
*Posee una amplia documentación en su página oficial ([http://www.php.net/manual/es/ Sitio Oficial]), entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
 +
*Es [[Software libre|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]].
 +
*Biblioteca nativa de funciones sumamente amplia e incluida.
 +
*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 (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o 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]]''' (o MVC), que permiten separar el tratamiento y acceso a los [[Dato]]s, la [[Lógica de control]] y la [[Interfaz de usuario]] en tres componentes independientes (ver más abajo '''[[PHP#Frameworks_en_PHP|Frameworks en PHP]]''').
  
En este código es posible observar las siguientes características:
+
=== Inconvenientes  ===
* Las variables enviadas por un formulario utilizando el método POST, son recibidas en el lenguaje dentro de la matriz <code>$_POST</code>, 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 [[cookie]]s en la matriz <code>$_COOKIES</code>, variables de URL en <code>$_GET</code> (que en formularios puede servir para guardar los datos), variables de sesión utilizando <code>$_SESSION</code>, y variables del servidor y del cliente por medio de la matriz <code>$_SERVER</code>.
 
* 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 <code><?php ?></code>.
 
* 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 <code>htmlentitites()</code>, 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]]..
 
  
Todas las variables en PHP llevan el símbolo de dolar como prefijo (ejemplo: $variable1, $variable2, $variable3...,$variableN), los tipos de variable no es necesario declararlas, ya que a medida que se usan en la aplicación el servidor reconoce de que tipo son. Para mostrar una cadena (en inglés ''string'') debe estar dentro de comillas dobles o simples (ejemplo: "Hola Mundo", 'Lo que quiero mostrar'). Cabe destacar que si se desea mostrar el símbolo " o ' debe encerrarse en el otro tipo de comillas (<code>"...'..."</code>, <code>'..."...'</code>) o usarse un escape (<code>\'</code>, <code>\"</code>).
+
*La [[Ofuscación]] de código es la única forma de ocultar los fuentes.
  
Toda línea de instrucción siempre termina en un punto y coma (;), al igual que el [[Lenguaje de programación C|lenguaje C]].
+
== Ejemplo de código PHP  ==
  
Para insertar un comentario de una sola línea, debe empezar por <code>//</code> o por <code>#</code>. El resto de la línea es tratado entonces como un comentario. Para insertar un bloque de comentario, de una o más líneas, se utiliza la combinación <code>/*</code> y <code>*/</code>, por ejemplo: <code>/* <COMENTARIOS> */</code>
+
En el siguiente ejemplo se muestra el típico [[Hola Mundo]], que es una simple impresión por pantalla del mismo mensaje: &lt;source lang="php"&gt; &lt;?php $a = 'hola mundo'; echo $a;&nbsp;?&gt; &lt;/source&gt; El ejemplo anterior escribiría simplemente "Hola Mundo" (sin comillas) en la página web. Es importante recordar que todo bloque de código PHP debe estar dentro de &lt;?php(para abrir) y&nbsp;?&gt;(para cerrar) o simplemente de una forma más corta &lt;? &lt;CÓDIGO_PHP&gt;&nbsp;?&gt; -siempre que la directiva ''short_open_tag'' esté activada, muy parecido a las etiquetas en [[Active Server Pages|ASP]] &lt;% &lt;CÓDIGO_ASP&gt;&nbsp;%&gt;. Ahora bien, el resultado que tendríamos en el navegador sería el siguiente:  
  
== Historia ==
+
Hola Mundo
 +
 
 +
A continuación un ejemplo de envío y recepción de datos en una misma página con PHP:
 +
 
 +
&lt;source lang="php"&gt; &lt;html&gt; &lt;head&gt;
 +
 
 +
&lt;title&gt;Ejemplo de uso simple en envío y recepción de parámetros con PHP&lt;/title&gt;<br>
 +
 
 +
&lt;/head&gt; &lt;body&gt; &lt;?php // Si existe la variable $_POST['muestra'], entonces muestra la comida favorita if (isset($_POST['muestra']))
 +
 
 +
{<br> echo 'Hola, '.$_POST['nombre'].', tu comida favorita es: '. $_POST['comida'].'';'' } else {
 +
 
 +
// Si no, muestra un formulario solicitando la comida favorita&nbsp;?&gt; &lt;form method="POST" action="&lt;?php echo $_SERVER['PHP_SELF'];?&gt;"&gt;
 +
 
 +
¿Cuál es tu nombre?<br> &lt;input type="text" name="nombre" /&gt;<br> ¿Cuál es tu comida favorita?<br> &lt;select name="comida"&gt;<br> &lt;option value="Spaguetis"&gt;Spaguetis&lt;/option&gt;<br> &lt;option value="Asado"&gt;Asado&lt;/option&gt;<br> &lt;option value="Pizza"&gt;Pizza&lt;/option&gt;<br> &lt;/select&gt;<br> &lt;input type="submit" name="muestra" value="Seguir" /&gt;<br>
 +
 
 +
&lt;/form&gt;
 +
 
 +
&lt;?php
 +
 
 +
} //Fin del bloque else<br>
 +
 
 +
?&gt;
 +
 
 +
&lt;/body&gt; &lt;/html&gt; &lt;/source&gt;
 +
 
 +
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 <code>$_POST</code>, 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 [[Cookie]]s en la matriz <code>$_COOKIES</code>, variables de URL en <code>$_GET</code> (que en formularios puede servir para guardar los datos), variables de sesión utilizando <code>$_SESSION</code>, y variables del servidor y del cliente por medio de la matriz <code>$_SERVER</code>.
 +
*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 <code>&lt;?php&nbsp;?&gt;</code>.
 +
*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 <code>htmlentitites()</code>, 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]]..
 +
 
 +
Todas las variables en PHP llevan el símbolo de dolar como prefijo (ejemplo: $variable1, $variable2, $variable3...,$variableN), los tipos de variable no es necesario declararlas, ya que a medida que se usan en la aplicación el servidor reconoce de que tipo son. Para mostrar una cadena (en inglés ''string'') debe estar dentro de comillas dobles o simples (ejemplo: "Hola Mundo", 'Lo que quiero mostrar'). Cabe destacar que si se desea mostrar el símbolo " o ' debe encerrarse en el otro tipo de comillas (<code>"...'..."</code>, <code>'..."...'</code>) o usarse un escape (<code>\'</code>, <code>\"</code>).
 +
 
 +
Toda línea de instrucción siempre termina en un punto y coma (;), al igual que el [[Lenguaje de programación C|lenguaje C]].
 +
 
 +
Para insertar un comentario de una sola línea, debe empezar por <code>//</code> o por <code>#</code>. El resto de la línea es tratado entonces como un comentario. Para insertar un bloque de comentario, de una o más líneas, se utiliza la combinación <code>/*</code> y <code>*/</code>, por ejemplo:&nbsp;<code></code>
 +
 
 +
== Historia ==
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
!Versión
+
! Versión  
!style="width:10em"|Fecha
+
! style="width: 10em;" | Fecha  
!Cambios más importantes
+
! Cambios más importantes
 
|-
 
|-
|PHP 1.0
+
| PHP 1.0  
|8 de junio de 1995
+
| 8 de junio de 1995  
|Oficialmente llamado "Herramientas personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP".
+
| Oficialmente llamado "Herramientas personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP".
 
|-
 
|-
|PHP Version 2 (PHP/FI)
+
| PHP Version 2 (PHP/FI)  
|16 de abril de 1996
+
| 16 de abril de 1996  
|Considerado por el creador como la "más rapida y simple herramienta" para la creación de páginas webs dinámicas .
+
| Considerado por el creador como la "más rapida y simple herramienta" para la creación de páginas webs dinámicas .
 
|-
 
|-
|PHP 3.0
+
| PHP 3.0  
|6 de junio de 1998
+
| 6 de junio de 1998  
|Desarrollo movido de una persona a muchos desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta versión.
+
| Desarrollo movido de una persona a muchos desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta versión.
 
|-
 
|-
|PHP 4.0
+
| PHP 4.0  
|22 de mayo de 2000
+
| 22 de mayo de 2000  
|Se añade un sistema más avanzado de análisis de etiquetas en dos fases análisis/ejecución llamado el motor Zend.
+
| Se añade un sistema más avanzado de análisis de etiquetas en dos fases análisis/ejecución llamado el motor Zend.
 
|-
 
|-
|PHP 4.1
+
| PHP 4.1  
|10 de diciembre de 2001
+
| 10 de diciembre de 2001  
|Introducidas las variables superglobals ($_GET, $_SESSION, etc.).
+
| Introducidas las variables superglobals ($_GET, $_SESSION, etc.).
 
|-
 
|-
|PHP 4.2
+
| PHP 4.2  
|22 de abril de 2002
+
| 22 de abril de 2002  
|Se deshabilitan register_globals por defecto.
+
| Se deshabilitan register_globals por defecto.
 
|-
 
|-
|PHP 4.3
+
| PHP 4.3  
|27 de diciembre de 2002
+
| 27 de diciembre de 2002  
|Introducido la CLI, en adición a la CGI.
+
| Introducido la CLI, en adición a la CGI.
 
|-
 
|-
|PHP 4.4
+
| PHP 4.4  
|11 de julio de 2005
+
| 11 de julio de 2005  
|
+
|  
 
|-
 
|-
|PHP 5.0
+
| PHP 5.0  
|13 de julio de 2004
+
| 13 de julio de 2004  
|Motor Zend II con un nuevo modelo de objetos.  
+
| Motor Zend II con un nuevo modelo de objetos.
 
|-
 
|-
|PHP 5.1
+
| PHP 5.1  
|25 de noviembre de 2005
+
| 25 de noviembre de 2005  
|
+
|  
 
|-
 
|-
|PHP 5.2
+
| PHP 5.2  
|2 de noviembre de 2006
+
| 2 de noviembre de 2006  
|Habilitado el filtro de extensiones por defecto.
+
| Habilitado el filtro de extensiones por defecto.
 
|-
 
|-
|PHP 5.2.4
+
| PHP 5.2.4  
|30 de agosto de 2007
+
| 30 de agosto de 2007  
|
+
|  
 
|-
 
|-
|PHP 5.2.5
+
| PHP 5.2.5  
|8 de noviembre de 2007
+
| 8 de noviembre de 2007  
|Versión centrada en mejorar la estabilidad (+60 errores solucionados).
+
| Versión centrada en mejorar la estabilidad (+60 errores solucionados).  
|
+
|  
 
|-
 
|-
|PHP 5.2.8
+
| PHP 5.2.8  
|8 de diciembre de 2008
+
| 8 de diciembre de 2008  
|
+
|  
 
|-
 
|-
|PHP 5.2.9
+
| PHP 5.2.9  
|26 de febrero de 2009
+
| 26 de febrero de 2009  
|Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).  
+
| Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).
 
|-
 
|-
|PHP 5.2.12
+
| PHP 5.2.12  
|17 de diciembre de 2009
+
| 17 de diciembre de 2009  
|Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).  
+
| Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).
 
|-
 
|-
|PHP 5.3
+
| PHP 5.3  
|30 de junio de 2009
+
| 30 de junio de 2009  
|namespaces, late static binding, closures, optional garbage collection for cyclic references, nuevas extensiones (+140 errores solucionados).  
+
| namespaces, late static binding, closures, optional garbage collection for cyclic references, nuevas extensiones (+140 errores solucionados).
 
|-
 
|-
|PHP 5.3.1
+
| PHP 5.3.1  
|19 de Noviembre de 2009
+
| 19 de Noviembre de 2009  
|Diversas mejoras en el ámbito de la seguridad (36 errores solucionados)..
+
| Diversas mejoras en el ámbito de la seguridad (36 errores solucionados)..
 
|-
 
|-
|PHP 5.3.2
+
| PHP 5.3.2  
|4 de Marzo del 2010
+
| 4 de Marzo del 2010  
|Diversas mejoras en el ámbito de la seguridad (99 errores solucionados)..
+
| Diversas mejoras en el ámbito de la seguridad (99 errores solucionados)..
|-
 
|PHP 6
 
|S/D
 
|
 
 
|-
 
|-
 +
| PHP 6
 +
| S/D
 +
|
 
|}
 
|}
  
== Aplicaciones desarrolladas con PHP ==
+
== Aplicaciones desarrolladas con PHP ==
* Redes Sociales
+
 
** [[Facebook]]
+
*Redes Sociales  
** [[Tuenti]]
+
**[[Facebook]]  
* E-Commerce
+
**[[Tuenti]]  
** [[Magento]]
+
*E-Commerce  
** [[OsCommerce]]
+
**[[Magento]]  
** [[PrestaShop]]
+
**[[OsCommerce]]  
* Blogs
+
**[[PrestaShop]]  
** [[WordPress]]  
+
*Blogs  
* Burning Board
+
**[[WordPress]]  
* CMSformE
+
*Burning Board  
* [[Dokuwiki]]
+
*CMSformE  
* [[Drupal]]
+
*[[Dokuwiki]]  
* Gallery Project
+
*[[Drupal]]  
* [[Mambo Open Source]]
+
*Gallery Project  
* [[MediaWiki]] (desarrollado para [[Wikipedia]])
+
*[[Mambo Open Source]]  
* [[Moodle]]
+
*[[MediaWiki]] (desarrollado para [[Wikipedia]])  
* Phorum
+
*[[Moodle]]  
* [[phpMyAdmin]]
+
*Phorum  
* [[PHP-Nuke]]
+
*[[PhpMyAdmin]]  
* [[phpPgAdmin]]
+
*[[PHP-Nuke]]  
* [[PhpWiki]]
+
*[[PhpPgAdmin]]  
* PmWiki
+
*[[PhpWiki]]  
* [[Zikula]] (anteriormente llamado PostNuke)
+
*PmWiki  
* [[Smarty]]
+
*[[Zikula]] (anteriormente llamado PostNuke)  
* [[SPIP]]
+
*[[Smarty]]  
* [[SugarCRM]]
+
*[[SPIP]]  
* [[vBulletin]]
+
*[[SugarCRM]]  
* Xaraya
+
*[[VBulletin]]  
* [[Xoops]]
+
*Xaraya  
* [[Joomla]]
+
*[[Xoops]]  
* [[MODx]]
+
*[[Joomla]]  
* [[SMF]]
+
*[[MODx]]  
* [[phpBB]]
+
*[[SMF]]  
* [[UVG SCADA]]
+
*[[PhpBB]]  
(En el siguiente [[Anexo:Sistemas de gestión de contenidos|listado]] de [[Sistema de gestión de contenido|CMS]] pueden encontrarse muchos más.)
+
*[[UVG SCADA]]
* [[PhpCollab]]
+
 
 +
(En el siguiente [[Anexo:Sistemas de gestión de contenidos|listado]] de [[Sistema de gestión de contenido|CMS]] pueden encontrarse muchos más.)  
 +
 
 +
*[[PhpCollab]]
 +
 
 +
== Frameworks en PHP  ==
 +
 
 +
*[[Zend Framework]] (Oficial, de los desarrolladores de PHP)
 +
*[[Kohana]]
 +
*[[Symfony]]
 +
*[[CakePHP]]
 +
*[http://www.pradosoft.com/ PHP Prado]
 +
*[http://codeigniter.com CodeIgniter]
 +
*[http://www.yiiframework.com Yii Framework]
 +
*[http://lithify.me/ Lithium]
 +
*[http://silverstripe.org/sapphire Sapphire]
  
== Frameworks en PHP ==
+
(Otros Frameworks en PHP y en otros lenguajes [[Modelo Vista Controlador#Frameworks_MVC|aquí]].)  
* [[Zend Framework]] (Oficial, de los desarrolladores de PHP)
 
* [[Kohana]]
 
* [[Symfony]]
 
* [[CakePHP]]
 
* [http://www.pradosoft.com/ PHP Prado]
 
* [http://codeigniter.com CodeIgniter]
 
* [http://www.yiiframework.com Yii Framework]
 
* [http://lithify.me/ Lithium]
 
* [http://silverstripe.org/sapphire Sapphire]
 
(Otros Frameworks en PHP y en otros lenguajes [[Modelo Vista Controlador#Frameworks MVC|aquí]].)
 
  
== [[Entorno de desarrollo integrado|IDEs]] para PHP ==
+
== Entorno de desarrollo integrado para PHP ==
Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated Development Environment), para PHP más conocidos o habituales son:
 
  
* [[PDT]], plugin de [[Eclipse (software)|Eclipse]]: GPL - (Sun).
+
Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated Development Environment), para PHP más conocidos o habituales son:  
* [[NetBeans]] , libre, multiplataforma.
 
* [[Zend Studio]]: Comercial - (Zend).
 
* [[Aptana Studio]]: GPL, existe una versión comercial. Debe instalarse el plugin para PHP. Está basado en Eclipse, pero posee características que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-completado de código, auto-identador.
 
* [[Komodo IDE]]: Komodo Edit, libre y gratuito, el IDE es licencia comercial - (Mozilla).
 
* [[NuSphere PhpED]]: Comercial, para linux y windows.
 
* [[Quanta]]: GPL y gratuito, para GNU/linux con QT.
 
* [[Bluefish]]: GPL y gratuito, para GNU/linux con GTK.
 
* [[gEdit]]: Editor de texto por defecto en Gnome - (Linux).
 
* [[Geany]]:GPL, para linux. Sumamente liviano. Incluye autocompletado, autoidentador, soporte para numerosos lenguages.
 
* [[phpDesigner]]: Comercial y Freeware, para linux y windows. Incluye integración con el manual, autocompletado en código y viene en varios idiomas.
 
* [[Rapid PHP]]: Comercial, para windows.
 
* [[AJAX PHP IDE]]: Entorno de desarrollo para PHP que utiliza funcionalidad AJAX en los eventos de los formularios diseñados. Separación de la lógica y el html.
 
  
== Referencias ==
+
*[[PDT]], plugin de [[Eclipse (software)|Eclipse]]: GPL - (Sun).
{{listaref}}
+
*[[NetBeans]] , libre, multiplataforma.
 +
*[[Zend Studio]]: Comercial - (Zend).
 +
*[[Aptana Studio]]: GPL, existe una versión comercial. Debe instalarse el plugin para PHP. Está basado en Eclipse, pero posee características que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-completado de código, auto-identador.
 +
*[[Komodo IDE]]: Komodo Edit, libre y gratuito, el IDE es licencia comercial - (Mozilla).
 +
*[[NuSphere PhpED]]: Comercial, para linux y windows.
 +
*[[Quanta]]: GPL y gratuito, para GNU/linux con QT.
 +
*[[Bluefish]]: GPL y gratuito, para GNU/linux con GTK.
 +
*[[GEdit]]: Editor de texto por defecto en Gnome - (Linux).
 +
*[[Geany]]:GPL, para linux. Sumamente liviano. Incluye autocompletado, autoidentador, soporte para numerosos lenguages.
 +
*[[PhpDesigner]]: Comercial y Freeware, para linux y windows. Incluye integración con el manual, autocompletado en código y viene en varios idiomas.
 +
*[[Rapid PHP]]: Comercial, para windows.
 +
*[[AJAX PHP IDE]]: Entorno de desarrollo para PHP que utiliza funcionalidad AJAX en los eventos de los formularios diseñados. Separación de la lógica y el html.
 +
 
 +
== Referencias ==
 +
 
 +
<references />
  
 
== Enlaces externos  ==
 
== Enlaces externos  ==
 
{{wikibooks|Programación en PHP}}
 
  
 
*[http://www.php.net/ Sitio web oficial de PHP (inglés)]  
 
*[http://www.php.net/ Sitio web oficial de PHP (inglés)]  
 
*[http://tutorialphp.net/test/ Test Dinámico de autoevaluación]  
 
*[http://tutorialphp.net/test/ Test Dinámico de autoevaluación]  
 
*[http://www.php.net/~derick/meeting-notes.html Cambios en PHP 6]  
 
*[http://www.php.net/~derick/meeting-notes.html Cambios en PHP 6]  
*[http://search.cpan.org/search?query=PHP&mode=all PHP en CPAN] Módulos Perl en [[CPAN]] sobre PHP
+
*[http://search.cpan.org/search?query=PHP&mode=all PHP en CPAN] Módulos Perl en [[CPAN]] sobre PHP  
 
+
*[http://www.conejemplos.com Ejemplos de codigo PHP]&nbsp;
[http://www.conejemplos.com Ejemplos de codigo PHP] {{bueno|en}}
 
  
[[Category:Programación]][[Category:Desarrollo web]][[Category:Lenguajes de programación orientada a objetos]]
+
[[Category:Programación]] [[Category:Desarrollo_web]] [[Category:Lenguajes_de_programación_orientada_a_objetos]]

Revisión del 12:41 22 mar 2010

Php
Información sobre la plantilla
CreadorPHP Goup

PHP.Lenguaje de programación, lenguaje interpretado, diseñado originalmente para la creación de Página web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.

PHP es un Acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Fue 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.

Visión general

PHP es un lenguaje interpretado de propósito general ampliamente usado, diseñado especialmente para desarrollo web y que puede ser incrustado dentro de código HTML. Generalmente se ejecuta en un servidor web, tomando el código en PHP como su entrada y creando páginas web como salida. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno.

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 sitio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. Este mismo 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. La versión más reciente de PHP es la 5.3.2 (for Windows) del 4 de marzo de 2010.

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 página web, 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, Postgres, 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, como Linux o Mac OS X) y 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# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de Sun Microsystems, 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 IDE (Entorno de desarrollo integrado) comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un Entorno integrado de desarrollo para PHP, denominado Delphi for PHP. Existe un módulo para Eclipse, uno de los IDE más populares.

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 vitae 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.

PHP 3

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 a la forma actual. Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio del 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.

PHP 4

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. [1]

PHP 5

El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). La versión más reciente de PHP es la 5.3.1 (19 de noviembre de 2009), que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:

Aún se siguen publicando versiones de la rama 5.2.X, siendo publicada la versión 5.2.12 el 17 de diciembre de 2009, aunque la mayoría son actualizaciones de seguridad

PHP 6

Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance esta nueva versión quedarán solo dos ramas activas en desarrollo (PHP 5 y 6), pues se abandonó el desarrollo y soporte de PHP 4 el 13 de julio de 2007. [2]

Las diferencias que encontraremos frente a PHP 5. son:

  • Soportará Unicode;
  • limpieza de funcionalidades obsoletas como register_globals, safe_mode, etc;
  • PECL y eliminación de soporte ereg;
  • mejoras en orientación a objetos;
  • inclusión en el núcleo de xmlReader y xmlWriter así como Fileinfo;

por referencia devolverá un error;

  • se elimina el soporte de las librerías FreeType1 y GD21;
  • etc.

Características de PHP

Ventajas

  • Es un lenguaje multiplataforma.
  • Completamente orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una Base de Datos.
  • El código fuente escrito en PHP es invisible al navegador 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 la enorme cantidad de módulos (llamados ext's o extensiones).
  • Posee una amplia documentación en su página oficial (Sitio 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.
  • Biblioteca nativa de funciones sumamente amplia e incluida.
  • 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 (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier técnica de programación y/o 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 (o 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 (ver más abajo Frameworks en PHP).

Inconvenientes

  • La Ofuscación de código es la única forma de ocultar los fuentes.

Ejemplo de código PHP

En el siguiente ejemplo se muestra el típico Hola Mundo, que es una simple impresión por pantalla del mismo mensaje: <source lang="php"> <?php $a = 'hola mundo'; echo $a; ?> </source> El ejemplo anterior escribiría simplemente "Hola Mundo" (sin comillas) en la página web. Es importante recordar que todo bloque de código PHP debe estar dentro de <?php(para abrir) y ?>(para cerrar) o simplemente de una forma más corta <? <CÓDIGO_PHP> ?> -siempre que la directiva short_open_tag esté activada, muy parecido a las etiquetas en ASP <% <CÓDIGO_ASP> %>. Ahora bien, el resultado que tendríamos en el navegador sería el siguiente:

Hola Mundo

A continuación un ejemplo de envío y recepción de datos en una misma página con PHP:

<source lang="php"> <html> <head>

<title>Ejemplo de uso simple en envío y recepción de parámetros con PHP</title>

</head> <body> <?php // Si existe la variable $_POST['muestra'], entonces muestra la comida favorita if (isset($_POST['muestra']))

{
echo 'Hola, '.$_POST['nombre'].', tu comida favorita es: '. $_POST['comida'].; } else {

// Si no, muestra un formulario solicitando la comida favorita ?> <form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">

¿Cuál es tu nombre?
<input type="text" name="nombre" />
¿Cuál es tu comida favorita?
<select name="comida">
<option value="Spaguetis">Spaguetis</option>
<option value="Asado">Asado</option>
<option value="Pizza">Pizza</option>
</select>
<input type="submit" name="muestra" value="Seguir" />

</form>

<?php

} //Fin del bloque else

?>

</body> </html> </source>

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..

Todas las variables en PHP llevan el símbolo de dolar como prefijo (ejemplo: $variable1, $variable2, $variable3...,$variableN), los tipos de variable no es necesario declararlas, ya que a medida que se usan en la aplicación el servidor reconoce de que tipo son. Para mostrar una cadena (en inglés string) debe estar dentro de comillas dobles o simples (ejemplo: "Hola Mundo", 'Lo que quiero mostrar'). Cabe destacar que si se desea mostrar el símbolo " o ' debe encerrarse en el otro tipo de comillas ("...'...", '..."...') o usarse un escape (\', \").

Toda línea de instrucción siempre termina en un punto y coma (;), al igual que el lenguaje C.

Para insertar un comentario de una sola línea, debe empezar por // o por #. El resto de la línea es tratado entonces como un comentario. Para insertar un bloque de comentario, de una o más líneas, se utiliza la combinación /* y */, por ejemplo: 

Historia

Versión Fecha Cambios más importantes
PHP 1.0 8 de junio de 1995 Oficialmente llamado "Herramientas personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP".
PHP Version 2 (PHP/FI) 16 de abril de 1996 Considerado por el creador como la "más rapida y simple herramienta" para la creación de páginas webs dinámicas .
PHP 3.0 6 de junio de 1998 Desarrollo movido de una persona a muchos desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta versión.
PHP 4.0 22 de mayo de 2000 Se añade un sistema más avanzado de análisis de etiquetas en dos fases análisis/ejecución llamado el motor Zend.
PHP 4.1 10 de diciembre de 2001 Introducidas las variables superglobals ($_GET, $_SESSION, etc.).
PHP 4.2 22 de abril de 2002 Se deshabilitan register_globals por defecto.
PHP 4.3 27 de diciembre de 2002 Introducido la CLI, en adición a la CGI.
PHP 4.4 11 de julio de 2005
PHP 5.0 13 de julio de 2004 Motor Zend II con un nuevo modelo de objetos.
PHP 5.1 25 de noviembre de 2005
PHP 5.2 2 de noviembre de 2006 Habilitado el filtro de extensiones por defecto.
PHP 5.2.4 30 de agosto de 2007
PHP 5.2.5 8 de noviembre de 2007 Versión centrada en mejorar la estabilidad (+60 errores solucionados).
PHP 5.2.8 8 de diciembre de 2008
PHP 5.2.9 26 de febrero de 2009 Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).
PHP 5.2.12 17 de diciembre de 2009 Diversas mejoras en el ámbito de la seguridad (+50 errores solucionados).
PHP 5.3 30 de junio de 2009 namespaces, late static binding, closures, optional garbage collection for cyclic references, nuevas extensiones (+140 errores solucionados).
PHP 5.3.1 19 de Noviembre de 2009 Diversas mejoras en el ámbito de la seguridad (36 errores solucionados)..
PHP 5.3.2 4 de Marzo del 2010 Diversas mejoras en el ámbito de la seguridad (99 errores solucionados)..
PHP 6 S/D

Aplicaciones desarrolladas con PHP

(En el siguiente listado de CMS pueden encontrarse muchos más.)

Frameworks en PHP

(Otros Frameworks en PHP y en otros lenguajes aquí.)

Entorno de desarrollo integrado para PHP

Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated Development Environment), para PHP más conocidos o habituales son:

  • PDT, plugin de Eclipse: GPL - (Sun).
  • NetBeans , libre, multiplataforma.
  • Zend Studio: Comercial - (Zend).
  • Aptana Studio: GPL, existe una versión comercial. Debe instalarse el plugin para PHP. Está basado en Eclipse, pero posee características que lo hacen mas deseable que el Eclipse PDT; entre ellas: auto-completado de código, auto-identador.
  • Komodo IDE: Komodo Edit, libre y gratuito, el IDE es licencia comercial - (Mozilla).
  • NuSphere PhpED: Comercial, para linux y windows.
  • Quanta: GPL y gratuito, para GNU/linux con QT.
  • Bluefish: GPL y gratuito, para GNU/linux con GTK.
  • GEdit: Editor de texto por defecto en Gnome - (Linux).
  • Geany:GPL, para linux. Sumamente liviano. Incluye autocompletado, autoidentador, soporte para numerosos lenguages.
  • PhpDesigner: Comercial y Freeware, para linux y windows. Incluye integración con el manual, autocompletado en código y viene en varios idiomas.
  • Rapid PHP: Comercial, para windows.
  • AJAX PHP IDE: Entorno de desarrollo para PHP que utiliza funcionalidad AJAX en los eventos de los formularios diseñados. Separación de la lógica y el html.

Referencias

  1. Volver arriba Sitio Oficial PHP: News Archives 2007] (en inglés) Consultado 9 de diciembre de 2007&lt;/ref&gt; 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
  2. Volver arriba Según esta noticia [1] se dará soporte a fallos críticos hasta el 2008-08-09,......

Enlaces externos