Conociendo PHP

43
Conociendo PHP Introducción a uno de los lenguajes de programación web más usados en Internet Antonio Kobashikawa Carrasco [email protected] @akobashikawa

description

Introduccion a uno de los lenguajes de programacion web mas usados en Internet

Transcript of Conociendo PHP

Page 1: Conociendo PHP

Conociendo PHP

Introducción a uno de los lenguajes de programación web más usados en Internet

Antonio Kobashikawa [email protected]

@akobashikawa

Page 2: Conociendo PHP

Audiencia

• Web• Programación

Page 3: Conociendo PHP

¿Qué es PHP?

Lenguaje de programación para generar páginas web

Page 4: Conociendo PHP

El ciclo web

navegador servidor websolicitud

respuesta

1

2

3

4

proceso

presentación

Page 5: Conociendo PHP

respuesta web

servidorweb

.html

.php

HTML

HTML

El contenido del documento .html es pasado tal cual a la respuesta HTML

Un documento dinámico (como .php) es procesado para obtener HTML

Page 6: Conociendo PHP

servidorweb

respuesta web

en el proceso, un documento dinámico puede involucrar diversos recursos

base de datos email archivos gráficos etc

Page 7: Conociendo PHP

¿Por qué PHP?

• Es ampliamente soportado por los servicios de hosting

• Es libre

• Un número significativo de sites se ha escrito en PHP (Wikipedia , YouTube, Yahoo, Facebook, WordPress…)

• Muchos paquetes importantes están escritos en PHP (WordPress, OS Commerce, Joomla, Drupal…)

• Es simple, directo, flexible…

• Ha evolucionado para soportar programación orientada a objetos

Page 8: Conociendo PHP

Conociendo PHP

para empezar

Page 9: Conociendo PHP

instalando PHP

PHP + MySQL

instalarPHP

instalarApache

instalar módulo PHP

instalarMySQL

configurarApache

configurarPHP

configurarPHP

En la instalación manual hay que bajar cada componente, instalarlo y configurarlo.

Page 10: Conociendo PHP

LAMP, WAMP, …

A M P

A M P

A M P

L

W

M

• Típicamente, PHP se instala para trabajar junto con Apache y MySQL

• Cuando la instalación aparece en Linux, se la llama LAMP

• Cuando la instalación aparece en Windows, se la llama WAMP

• Y así por el estilo…

Page 11: Conociendo PHP

XAMPP

• Hay varios proyectos que difunden paquetes que contienen esas instalaciones típicas.

• Usarlos puede facilitar la instalación, y el día a día con el entorno de desarrollo.

• XAMPP es uno de tales paquetes. No sólo provee PHP, sino también Perl y Python y está disponible tanto para Linux, como para Windows, Mac OS X y Solaris

Page 12: Conociendo PHP

Editores, IDEs• Igual que con HTML,

CSS, Javascript y otros lenguajes web, es posible trabajar usando un simple editor de texto, como Notepad, aunque contar con un entorno de desarrollo puede facilitar mucho las cosas.

• Hay editores de texto muy útiles para programación, como Notepad++, jEdit, …

• Y entornos de desarrollo muy buenos, como Dreamweaver, Aptana, Eclipse, Zend Studio…

Page 13: Conociendo PHP

Editores, IDEs• Estos son los que suelo

usar

• Notepad cuando no hay nada más a la mano

• Notepad++ es excelente, ligero, con FTP y una buena utilidad para convertir Unicode

• Dreamweaver es excelente para el diseño HTML, tiene buen soporte para PHP

• Aptana esta basada en Eclipse, pero tiene mucho mejor soporte para PHP, HTML, Javascript…

• Nano, cuando estoy Linux y no hay nada más a la mano

Page 14: Conociendo PHP

Empezando

El panel de control de XAMPP, desde donde podemos iniciar y detener sus servicios

Page 15: Conociendo PHP

Conociendo PHP

lo básico

Page 16: Conociendo PHP

¡Hola Mundo!

• El código php se escribe entre etiquetas <?php y ?>

• Para escribir algo en la página, podemos usar echo

• Las cadenas se escriben entre apóstrofes 'así', ó entre comillas "así"

• El nombre del archivo tiene la extensión php

<?phpecho '¡Hola Mundo!';?>

hola_mundo.php

Page 17: Conociendo PHP

¡Hola Mundo!

<?phpecho '¡Hola Mundo!';?>

hola_mundo.php

htdocs

Page 18: Conociendo PHP

…¡Hola Mundo!

htdocs/index.php

htdocs

http://localhost/index.php

htdocs/hola_mundo.php http://localhost/hola_mundo.php

Page 19: Conociendo PHP

…¡Hola Mundo!

unicode guardado como ASCII

unicode guardado como UTF-8 En Notepad++ es fácil comprobar y cambiar el encode

Si usamos unicode, tener cuidado de guardar el archivo en UTF-8 (sin BOM)

Page 20: Conociendo PHP

…¡Hola Mundo!

<?phpecho '¡Hola Mundo!';?>

¡Hola Mundo!

servidorweb

navegador

http://localhost/hola_mundo.php

.phpHTML

Page 21: Conociendo PHP

…¡Hola Mundo!

• Un documento php es básicamente html con código inserto

• Los bloques php se reemplazan por su resultado

<html><body>

<h1><?php echo '¡Hola Mundo!';?></h1>

</body></html>

hola_mundo.php

Page 22: Conociendo PHP

…¡Hola Mundo!

<html><body>

<h1>¡Hola Mundo!</h1>

</body></html>

Page 23: Conociendo PHP

Cuadrados

<html><body> <h1>Cuadrados</h1> <table border="1"> <?php for ($i=1; $i<=10; $i++) { ?> <tr> <td><?php echo $i;?></td> <td><?php echo $i*$i;?></td> </tr> <?php } ?> </table></body></html>

cuadrados.php

Page 24: Conociendo PHP

…Cuadrados<html><body> <h1>Cuadrados</h1> <table border="1"> <tr> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>4</td> </tr> … <tr> <td>10</td> <td>100</td> </tr> </table></body></html>

Page 25: Conociendo PHP

Conociendo PHP

formularios

Page 26: Conociendo PHP

Hola Tú

<html><body> <form action="hola.php" method="post"> Nombre: <input type="text" name="nombre"/> <input type="submit" value="OK"/> </form></body></html>

hola_form.php

Page 27: Conociendo PHP

…Hola Tú

<html><body><h1> <?php echo '¡Hola '.$_POST['nombre'].'!';?></h1></body></html>

hola.php

Page 28: Conociendo PHP

…Hola Tú

<?phpecho '¡Hola '.$_POST['nombre'].'!';?>

¡Hola Antonio!

servidorweb

navegadoraction=hola.php

hola.phpHTML

nombre=Antonio

<form>...</form><form>...</form>

http://localhost/hola_form.php

hola_form.php

Page 29: Conociendo PHP

…Hola Tú

<html><body> <?php $nombre = isset($_POST['nombre'])?$_POST['nombre']:''; ?> <form action="hola_tu.php" method="post"> Nombre: <input type="text" name="nombre" value="<?php echo $nombre;?>"/> <input type="submit" value="OK"> </form> <?php if ($nombre) { echo '<h1>¡Hola '.$nombre.'!</h1>'; }?></body></html>

hola_tu.php versión de una página

Page 30: Conociendo PHP

…Hola Tú

<?php$nombre = ...;?>

<form>...</form>

<?phpif ($nombre) { echo '<h1>¡Hola ' .$nombre.'!</h1>';}?>¡Hola Antonio!

servidorweb

navegadoraction=hola_tu.php

hola.phpHTML

nombre=Antonio

<form>...</form>

http://localhost/hola_tu.php

Page 31: Conociendo PHP

Conociendo PHP

un poco más

Page 32: Conociendo PHP

Bloques básicos

asignación

decisión

repetición

$x = 1+1;

if ($x>0) { ...}

if ($x>0) { ...} else { ...}

switch ($x) { case 1: ... break; ... default ... break;}

for ($i=0; $i<10; $i++) { ...}

while ($i<10) { ...}

do { ...} while ($i<10);

•if

•if/else

•switch

•for

•while

•do-while

Page 33: Conociendo PHP

Arrays

( [0]=>2 [1]=>3 [2]=>1 [3]=>'Hola')

'Hola'

231'Hola'

$x = 1;$a = array(2, 3, $x, 'Hola');

a[3]

foreach ($a as $item) { echo $item.'<br/>';}

foreach ($a as $indice=>$item) { echo $indice.': '.$item.'<br/>';}

0: 21: 32: 13: 'Hola'

Page 34: Conociendo PHP

Funciones

function hola_mundo() { echo '¡Hola Mundo!';}

function hola($x) { echo '¡Hola '.$x.'!';}

hola_mundo();

hola('Mundo');

function saludo($y) { return '¡Hola '.$y.'!';}function hola($x) { echo saludo($x);}

hola('Mundo');

¡Hola Mundo!

Page 35: Conociendo PHP

Clases

class Hola() { function saludo($y) { return '¡Hola '.$y.'!'; } function hola($x) { echo $this->saludo($x); }}

$h = new Hola();$h->hola('Mundo');

¡Hola Mundo!

Page 36: Conociendo PHP

include

echo '<h1>Conociendo PHP</h1>';

cabecera.php

echo 'Hola Mundo';

_hola_mundo.php

<html><body> <?php include 'cabecera.php';?> <?php include '_hola_mundo.php';?></body></html>

hola_mundo.php

Page 37: Conociendo PHP

require

function hola() { return '¡Hola Mundo!';}

funciones.php

echo hola();

_hola_mundo.php

<html><body> <?php require('funciones.php');?> <?php include '_hola_mundo.php';?></body></html>

hola_mundo.php

Page 38: Conociendo PHP

include & require

• include() y require() son similares, la diferencia es que si no existe el archivo a incluir, include() emitirá una alarma, mientras que require() terminará el programa.

• Un mismo archivo se puede incluir más de una vez.

• Para prevenir duplicaciones en las inclusiones existen include_once() y require_once().

Page 39: Conociendo PHP

Frameworks

• Un framework es una forma de organizar el trabajo.

• Luego de un tiempo desarrollando, uno empieza a notar ciertos patrones de organización. Aún sin proponérselo, va surgiendo un framework.

• Algunos frameworks muy difundidos en la comunidad PHP son CakePHP, CodeIgniter, Zend, Symphony…

• Un framework estandarizado obliga a seguir ciertas convenciones de organización, pero pone a nuestra disposición código ampliamente probado y optimizado.

Page 40: Conociendo PHP

Frameworks

• He trabajado en algunos proyectos con CakePHP 1.1

• CakePHP 1.2, la versión actual, incorpora algunos cambios significativos

• Ahora estoy desarrollando con CodeIgniter 1.7

• CI es quizás el framework PHP más rápido existente

• Kohana es una derivación de CI, pero exclusiva para PHP5

Page 41: Conociendo PHP

Referencias

• PHP site– http://php.net

• W3Schools – PHP– http://www.w3schools.com/PHP/default.asp

• CakePHP– http://cakephp.org

• CodeIgniter– http://codeigniter.com

• Zend Framework– http://framework.zend.com/

• Symphony– http://www.symfony-project.org/

• Coquette Icons– http://dryicons.com/free-icons/preview/coquette-icons-set/

Page 42: Conociendo PHP

Conociendo PHP

Introducción a uno de los lenguajes de programación web más usados en Internet

Antonio Kobashikawa [email protected]

@akobashikawa

Page 43: Conociendo PHP

Gracias por su atención

preguntas,comentarios