Sei sulla pagina 1di 31

Conociendo PHP

Introduccin a uno de los lenguajes de programacin web ms usados en Internet

Antonio Kobashikawa Carrasco akobashikawa@gmail.com @akobashikawa

Qu es PHP?

Lenguaje de programacin para generar pginas web

El ciclo web
1 4
navegador solicitud respuesta servidor web

presentacin

proceso

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

HTML

servidor web

.html

HTML

.php

Un documento dinmico (como .php) es procesado para obtener HTML

respuesta web
servidor web

en el proceso, un documento dinmico puede involucrar diversos recursos

base de datos

email

archivos

grficos

etc

Por qu PHP?
Es ampliamente soportado por los servicios de hosting Es libre Un nmero significativo de sites se ha escrito en PHP (Wikipedia , YouTube, Yahoo, Facebook, WordPress) Muchos paquetes importantes estn escritos en PHP (WordPress, OS Commerce, Joomla, Drupal) Es simple, directo, flexible Ha evolucionado para soportar programacin orientada a objetos

Hola Mundo!
hola_mundo.php

<?php echo 'Hola Mundo!'; ?>


El cdigo php se escribe entre etiquetas <?php y ?> Para escribir algo en la pgina, podemos usar echo El nombre del archivo tiene la extensin php Las cadenas se escriben entre apstrofes 'as', entre comillas "as"

Hola Mundo!
hola_mundo.php

<?php echo 'Hola Mundo!'; ?>

htdocs

Hola Mundo!

htdocs

htdocs/index.php

htdocs/hola_mundo.php

http://localhost/index.php

http://localhost/hola_mundo.php

Hola Mundo!

http://localhost/hola_mundo.php

servidor web
Hola Mundo! <?php echo 'Hola Mundo!'; ?>

navegador

HTML

.php

Hola Mundo!
hola_mundo.php

<html> <body> <h1> <?php echo 'Hola Mundo!';?> </h1> </body> </html>
Un documento php es bsicamente html con cdigo inserto Los bloques php se reemplazan por su resultado

Hola Mundo!
<html> <body> <h1> Hola Mundo! </h1> </body> </html>

Cuadrados
cuadrados.php

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

Conociendo PHP

formularios

Hola T
hola_form.php

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

Hola T
hola.php

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

Hola T
http://localhost/hola_form.php

<form>...</form>

<form>...</form>

navegador

action=hola.php
nombre=Antonio

servidor web

hola_form.php

Hola Antonio!

<?php echo 'Hola ' .$_POST['nombre'] .'!'; ?>

HTML

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

versin de una pgina

Hola T
http://localhost/hola_tu.php

<form>...</form>

navegador

action=hola_tu.php
nombre=Antonio

servidor web

<?php $nombre = ...; ?> <form>...</form> <?php if ($nombre) { echo '<h1>Hola ' .$nombre.'!</h1>'; } ?>

Hola Antonio!

HTML

hola.php

Conociendo PHP

un poco ms

Bloques bsicos
$x = 1+1; if ($x>0) { ... } if ($x>0) { ... } else { ... } switch ($x) { case 1: ... break; ... default ... break; }

asignacin decisin
if if/else

switch

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

repeticin
for while do-while

Arrays
$x = 1; $a = array(2, 3, $x, 'Hola'); ( [0]=>2 [1]=>3 [2]=>1 [3]=>'Hola'

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

'Hola'
2 3 1 'Hola' 0: 1: 2: 3: 2 3 1 'Hola'

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

hola_mundo(); hola('Mundo'); hola('Mundo');

Hola Mundo!

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

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

Hola Mundo!

include
cabecera.php

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


_hola_mundo.php

echo 'Hola Mundo';

hola_mundo.php

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

require
funciones.php

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


_hola_mundo.php

echo hola();

hola_mundo.php

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

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 ms de una vez. Para prevenir duplicaciones en las inclusiones existen include_once() y require_once().

Frameworks
Un framework es una forma de organizar el trabajo. Luego de un tiempo desarrollando, uno empieza a notar ciertos patrones de organizacin. An sin proponrselo, 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 organizacin, pero pone a nuestra disposicin cdigo ampliamente probado y optimizado.

Frameworks
He trabajado en algunos proyectos con CakePHP 1.1 CakePHP 1.2, la versin actual, incorpora algunos cambios significativos Ahora estoy desarrollando con CodeIgniter 1.7

CI es quizs el framework PHP ms rpido existente

Kohana es una derivacin de CI, pero exclusiva para PHP5

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/

Potrebbero piacerti anche