introducción a php

43
PHP David J. Brenes Martínez Nuevos lenguajes Dónde y Cómo Concepos base Inicio Control de flujo Estructuras E/S Módulos Orientación a Objetos PHP en la Web Gestión de parámetros Operaciones sobre la respuesta Referencias, Créditos y Licencia Introducción a PHP David J. Brenes Martínez Curso de Extensión Universitaria Desarrollo web avanzado Universidad de Oviedo 2010/03/22

Upload: david-j-brenes

Post on 20-Jan-2015

428 views

Category:

Education


0 download

DESCRIPTION

Introducción a PHP para el curso de extensión "Desarrollo Web Avanzado" donde se enseñaba el framework de desarrollo rápido Symfony para PHP

TRANSCRIPT

Page 1: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Introducción a PHP

David J. Brenes Martínez

Curso de Extensión UniversitariaDesarrollo web avanzado

Universidad de Oviedo

2010/03/22

Page 2: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Tienes un nuevo proyecto. . .

Page 3: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

. . . ¡¡en otro lenguaje!!

Page 4: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Problemas

La sintaxis es diferenteNo conozco los métodos de la bibliotecas básicasNo conozco el entornoBuzzwords nuevos

Page 5: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

¿En serio?

if’s, while’s, asignaciones, for’s, foreach’s. . .Documentación, documentación, documentaciónIDEs de desarrollo¿Son necesarias de principio?

Page 6: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Entonces ¿no pasa nada?

Bueno, no.

¿cómo leo de teclado?Mis problemas con la MSDNNo todos son tan IDEsMás que un lenguaje, una tecnología

Cambio de paradigma

Page 7: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

¿Qué somos?

Bueno, no sé.

Page 8: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

¿Qué se espera de nosotros?

Saber adaptarnosSaber aprenderNo depender de herramientasTener una visión general para poder ir mas allá

Page 9: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Moraleja

Vamos a aprender PHP.Que nadie llore de de agobio, que con este podemos.

Page 10: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Moraleja

Page 11: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

PHP como lenguaje no Web

PHP es un lenguaje de scriptingSe ejecuta desde línea de órdenesPermite programar pequeños programas de manerarápida y sencilla.

Page 12: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

PHP como lenguaje no Web

Se ejecuta un scriptEse script podrá incluir a otrosIdeal para tareas simples y pruebasAplicable a frameworks importantes (Hadoop)

Page 13: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

PHP como lenguaje Web

Se ejecuta un script (igual)La salida no es por pantalla, sino al navegador.Requiere un servidor web que entienda PHPFunciones especiales para servir webs ($_GET,$_POST...)

Page 14: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

PHP como lenguaje Web

Variables especiales web:

$_GET: Variables pasadas por petición GET$_POST: Variables pasadas por petición POST$_COOKIES: Variables almacenadas en cookies$_SESSION: Variables de sesión de un usuario$_SERVER: Variables globales de servidor

Page 15: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

PHP como lenguaje Web

¿Y el contexto de una aplicación?

En PHP hay scripts, no aplicaciones.No hay contexto de aplicación

Page 16: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Estructura de script

<?php

/ / Codigo PHP

?>

Page 17: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Variables

$va r i ab le ;$va r i ab le = " va l o r " ;$va r i ab le = $o t ra_va r i ab le ;i n t $va r i ab le ;

Page 18: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Entrada/Salida - Pantalla

echo $va r i ab le ;echo " va l o r " ;pr in t ( $va r i ab le ) ;pr in t ( " va l o r " ) ;pr in t_r ( $array ) ;var_dump ( $va r i ab le ) ;

Page 19: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Condicional

<?php

i f ( $condic ion ){/ / Código}

?>

Page 20: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Bucles

while ( $condic ion ){/ / Codigo PHP}

do{/ / Código PHP} while ( $condic ion )

Page 21: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Bucles

for ( $ i = 0 ; $ i < $ l i m i t e ; $ i ++){/ / Codigo PHP}

Page 22: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Iteración de listas

foreach ( $array as $elemento ){/ / Codigo PHP}

Page 23: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Iteración de diccionarios

foreach ( $array as $clave => $elemento ){/ / Codigo PHP}

Page 24: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Arrays y diccionarios

$array = array ( ) ;$array = array ( 1 , 2 , 3 , 4 ) ;$array = range ( 1 , 4 ) ;$array = array ( " i n i c i o " => 1 ,

" f i n => 2 ) ;

Page 25: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Arrays y diccionarios

echo $array [ 0 ] ;$array [ $clave ] = $va lo r ;$array [ ] = $va lo r ;

Page 26: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Entrada/Salida - Ficheros

$ f i che ro = fopen ( $path_to_ f ichero ,$modo_de_apertura ) ;fread ( $ f i chero , $bytes_a_leer ) ;f w r i t e ( $ f i chero , $cadena ) ;fclose ( $ f i che ro ) ;

Page 27: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Entrada/Salida - Ficheros

$con ten ido_s t r i ng = fge t s ( $pa th_ to_ f i chero ) ;$contenido_array_csv = fgetcsv ( $pa th_ to_ f i chero ) ;$contenido_array = f i l e ( $pa th_ to_ f i chero ) ;

fputs ( $path_to_ f ichero , $contenido ) ;

Page 28: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Inclusión de código

include ( $pah_f ichero_codigo ) ;include_once ( $pah_f ichero_codigo ) ;require ( $pah_f ichero_codigo ) ;require_once ( $pah_f ichero_codigo ) ;

Page 29: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Inclusión de código

include* no da error si el fichero no existerequire* da error y detiene el script si el fichero noexiste*_once solo incluye el fichero una vez

Page 30: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

La Orientación a Objetos de PHP

Muy tardía (autentica OO en PHP5).Clases abstractas, interfaces...ConstructoresSin polimorfismo

Page 31: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

La Orientación a Objetos de PHP

Lenguaje DinámicoInterfaces no explícitasDucktyping

Page 32: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Clase de ejemplo

c lass Ejemplo{p r i v a t e $a t r i bu to_p r i vado ;p u b l i c $ a t r i b u t o _ p u b l i c o ;}

Page 33: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Clase de ejemplo

c lass Ejemplo{p u b l i c f u n c t i o n __const ruc t ( $parametros ){/ / . . .}}

Page 34: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Herencia

c lass Ejemploextends ClaseAbstractaimplements I n t e r f a z

{/ / . . .}

Page 35: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Variables especiales

Son variables que almacenan datos de diversos aspectosweb:

$_GET: Parámetros de la URL$_SESSION: Datos de la sesión de usuario$_COOKIES: Datos escrito en la cookie del navegador$_SERVER: Datos del servidor$_REQUEST: Datos compartidos en toda la Request$_FILES: Ficheros subidos por formulario

Page 36: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Variables especiales

Son variables que almacenan datos de diversos aspectosweb:

Son todas diccionariosLas claves de los diccionarios se especifican en lapetición ($_GET, $_POST, $_FILES),programáticamente ($_SESSION, $_COOKIES) o bienson parte de una especificacion fija ($_SERVER)

Page 37: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Parámetros en la URL

/ / URL: / index . php? ac t i on = l o g i n

echo $_GET[ " ac t i on " ] ;/ / Muestra " l o g i n "

Page 38: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Parámetros de formulario

/ / Al env ia r un f o r m u l a r i o con un campo/ / " search " i g u a l a " curso "

echo $_POST[ " search " ] ;/ / Muestra " curso "

Page 39: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Datos en sesión

/ / Request 1 :$_SESSION [ " l o g i n " ] = " brenes "

/ / Request 2 :echo $_SESSION [ " l o g i n " ] ;/ / Muestra " curso "

Page 40: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Cabeceras HTTP

header ( "HTTP/ 1 . 0 404 Not Found " ) ;

header ( ’ Content−type : a p p l i c a t i o n / pdf ’ ) ;

Page 41: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Referencias

PHP.net: www.php.net

Page 42: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Créditos

Las fotografías están sacadas de la cuenta del usuarionataliej de Flickr: http://www.flickr.com/photos/nataliejohnson/1908713509/, http://www.flickr.com/photos/nataliejohnson/1845289869/in/set-72157602788803805/.

Page 43: Introducción a PHP

PHP

David J.Brenes

Martínez

Nuevoslenguajes

Dónde yCómo

ConceposbaseInicio

Control de flujo

Estructuras

E/S

Módulos

Orientación aObjetos

PHP en laWebGestión deparámetros

Operaciones sobre larespuesta

Referencias,Créditos yLicencia

Licencia

Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:

Se dé reconocimiento al autor de estas transparencias.No se use con propósitos comerciales.Se distribuya con la misma licencia.

Texto de la licencia: http://creativecommons.org/licenses/by-nc-sa/3.0/