introducción a php
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 PHPTRANSCRIPT
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/