introducción a php

Post on 20-Jan-2015

430 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

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

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

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

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

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

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?

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

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

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á

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.

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

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.

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)

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

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

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

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

?>

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 ;

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 ) ;

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}

?>

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 )

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}

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}

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}

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 ) ;

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 ;

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 ) ;

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 ) ;

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 ) ;

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

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

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

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 ;}

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 ){/ / . . .}}

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

{/ / . . .}

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

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)

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 "

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 "

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 "

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 ’ ) ;

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

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

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/

top related