php - · pdf fileprincipal de php es producida ahora por the php group y sirve como el...

14
PHP PHP Paradigma : multiparadigma Apareció en: 1995 Diseñado por: PHP Group Última versión estable: 5.3.3 (22 de julio de 2010) Tipo de dato : dinámico Influido por: C , C++ , Perl , Java , Python Sistema operativo : Multiplataforma Licencia de software : PHP License 3.01 Web: www.php.net PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de 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 usando las bibliotecas Qt o GTK+.

Upload: nguyenphuc

Post on 01-Feb-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP - · PDF fileprincipal 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 ... PHP es una

PHP

PHP

Paradigma: multiparadigma

Apareció en: 1995

Diseñado por: PHP Group

Última versión estable: 5.3.3 (22 de julio de 2010)

Tipo de dato: dinámico

Influido por: C, C++, Perl, Java, Python

Sistema operativo: Multiplataforma

Licencia de software: PHP License 3.01

Web: www.php.net

PHP es un lenguaje de programación interpretado, diseñado originalmente para

la creación de 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

usando las bibliotecas Qt o GTK+.

Page 2: PHP - · PDF fileprincipal 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 ... PHP es una

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.3, del 22 de julio 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).

Page 3: PHP - · PDF fileprincipal 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 ... PHP es una

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.

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.

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

Page 4: PHP - · PDF fileprincipal 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 ... PHP es una

desarrollo para PHP, denominado Delphi for PHP. También existen al menos

un par de módulos[1] 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 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.

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,[2] 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.[3] Según

esta noticia [3] se dará soporte a fallos críticos hasta el 2008-08-09,......

Page 5: PHP - · PDF fileprincipal 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 ... PHP es una

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.3 (22 de julio de

2010), que 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.

Aún se siguen publicando versiones de la rama 5.2.X, siendo publicada la

versión 5.2.14 el 22 de Julio de 2010, 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.[4]

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;

return por referencia devolverá un error;

se retira el soporte de las bibliotecas FreeType1 y GD21;

etc.

Tabla Resumen

Page 6: PHP - · PDF fileprincipal 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 ... PHP es una

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 rápida 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

Page 7: PHP - · PDF fileprincipal 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 ... PHP es una

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 5.3.3 22 de julio del 2010 Diversas mejoras en el ámbito de la seguridad y estabilidad. (mas de 100 errores solucionados)..

PHP 6 S/D

Page 8: PHP - · PDF fileprincipal 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 ... PHP es una

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 ([4]), 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).

Page 9: PHP - · PDF fileprincipal 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 ... PHP es una

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:

<?php

$a = 'Hola Mundo';

echo $a;

?>

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-,5 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:

<html>

<head>

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

con PHP</title>

</head>

<body>

<?php

Page 10: PHP - · PDF fileprincipal 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 ... PHP es una

// Si existe la variable $_POST['comida'], entonces muestra la comida

favorita

if (isset($_POST['comida']))

{

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>

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.

Las variables que están dentro de las cadenas $_POST, $_GET y $_COOKIE

pueden encontrarse en la cadena $_REQUEST, ya que ésta resume las 3

anteriores.

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

Page 11: PHP - · PDF fileprincipal 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 ... PHP es una

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 dólar 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: /* <COMENTARIOS> */

Programación Orientada a Objetos en

PHP

PHP no es en sí un lenguaje de programación orientado a objetos (POO), pero

desde hace ya unas versiones se ha implementado el uso de clases y objetos.

Aquí tenemos un ejemplo de una clase sencilla en PHP:

class Clase {

var $Una_variable; //Creamos las variables

var $Otra_variable;

Page 12: PHP - · PDF fileprincipal 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 ... PHP es una

function Clase($var1, $var2){ //Creamos un constructor que defina

las variables "Una_variable" y "Otra_variable" dentro de la clase.

$this->Una_variable = $var1;

$this->Otra_variable = $var2;

}

}

Ahora veremos como se llama a la clase previamente creada:

$clase = new Clase("Esta es la variable 1", "Esta es la variable 2");

El ejemplo anterior es válido para php4, el mismo ejemplo escrito php5, varía

en el nombre del constructor y en la forma en como se declara la variable.

<?php

class Clase {

public $Una_variable; //Creamos las variables para php5

public $Otra_variable;

function __construct($var1, $var2){ //Creamos un constructor que

defina las variables "Una_variable" y "Otra_variable" dentro de la

clase.

$this->Una_variable = $var1;

$this->Otra_variable = $var2;

}

}

$instancia = new Clase('rojo','blanco');

echo "El color de la variable \$Una_variable es : ". $instancia-

>Una_variable . " El color de la otra variable \$Otra_variable es: " .

$instancia->Otra_variable;

?>

El valor public indica que la propiedad o el método están disponible para todo

código que desee acceder a los mismos. PHP 5 ofrece tres niveles de

visibilidad para utilizar en clases: public, private, protected. A la vez, cambia la

forma en la que se declara el constructor de la clase, ya que en PHP 4 se

usaba el mismo nombre de esta, y en PHP 5 se crea el método especial

__construct

Ejemplos de aplicaciones esarrolladas

con PHP

Magento

Page 13: PHP - · PDF fileprincipal 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 ... PHP es una

OsCommerce

PrestaShop

WordPress

Burning Board

CMSformE

Dokuwiki

Drupal

Gallery Project

Mambo Open Source

MediaWiki (desarrollado para Wikipedia)

Moodle

Phorum

phpMyAdmin

PHP-Nuke

phpPgAdmin

PhpWiki

PmWiki

Zikula (anteriormente llamado PostNuke)

Smarty

SPIP

SugarCRM

vBulletin

Xaraya

Xoops

Joomla

MODx

SMF

phpBB

UVG SCADA

PhpCollab

Son solo algunos ejemplos, en el siguiente listado de CMS pueden encontrarse

muchos más.

Frameworks en PHP

Zend Framework (Oficial, de los desarrolladores de PHP)

Kohana

Symfony

CakePHP

PHP Prado

CodeIgniter

Yii Framework

Lithium

Sapphire

IDEs para PHP

Page 14: PHP - · PDF fileprincipal 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 ... PHP es una

Algunos de los Entornos de Desarrollo Integrados, en inglés (IDE, Integrated

Development Environment), para PHP más conocidos o habituales son:

Dreamweaver, comercial, de la casa Adobe actualmente en la versión CS5

(11.0.4909)

PDT,1 plugin de Eclipse: GPL - (Sun).

PHPEclipse,1 otro plugin de Eclipse

NetBeans , libre, multiplataforma, utiliza Symfony, auto-completado de código,

auto-identador..

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 y Windows. Sumamente liviano. Incluye

autocompletado, autoidentador, soporte para numerosos lenguajes.

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. ↑ a b c Existen tanto PHPEclipse como PDT for Eclipse. Véanse [1] y [2]

2. ↑ PHP: News Archives 2007 (en inglés) Consultado 9 de diciembre de 2007

3. ↑ PHP: News Archives 2008 (en inglés)

4. ↑ «Minutes PHP Developers Meeting» (12 de noviembre de 2005). Consultado

el 15 de enero de 2010.

5. ↑ Manual de Referencia PHP, Description of core php.ini directives

Referencia: http://es.wikipedia.org/wiki/PHP