Conociendo php (201009)

2,012 views

Published on

Introducción a uno de los lenguajes de programación más populares de Internet (actualizado)

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,012
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Conociendo php (201009)

  1. 1. Conociendo PHP<br />Introducción a uno de los lenguajes de programación web másusados en Internet<br />Antonio Kobashikawa Carrasco<br />akobashikawa@gmail.com<br />@akobashikawa<br />
  2. 2. Expositor<br />Desarrollo Web<br />Programación<br />
  3. 3. Audiencia<br />Web<br />Programación<br />
  4. 4. Estapresentación<br />La idea PHP<br /><ul><li>Páginas web dinámicas</li></ul>Instalando PHP<br />Programando con PHP<br /><ul><li>Patrones
  5. 5. Frameworks</li></li></ul><li>La idea<br />
  6. 6. El ciclo web<br />1<br />navegador<br />servidor web<br />solicitud<br />2<br />4<br />respuesta<br />3<br />presentación<br />proceso<br />
  7. 7. ¿Quéesunapágina web?<br />Archivo de texto con indicaciones para mostrar el contenido<br />HTML<br />presentación<br />Hola<br />¡Hola Mundo!<br /><html><br /><body><br /> <h1>Hola</h1><br /> <p>¡Hola Mundo!</p><br /> <imgsrc="h.gif"/><br /></body><br /></html><br />
  8. 8. Páginadinámica<br />Página web con contenido generado por algún proceso.<br />proceso<br />HTML<br /><html><br /><body><br /> ...<br /></body><br /></html><br />
  9. 9. Estilo CGI<br />Perl<br />HTML<br />
  10. 10. Estilo SSI<br />PHP<br />HTML<br />
  11. 11. ¿Quées PHP?<br />lenguajede programaciónparagenerarcontenidoweb<br />PHP<br />HTML<br /><html><br /><body><br /> ...<br /></body><br /></html><br />
  12. 12. Proceso PHP<br />El contenido del documento .html espasadotalcual a la respuesta HTML<br />servidor<br />web<br />.html<br />HTML<br />.php<br />HTML<br />Un documentodinámico (como .php) esprocesadoparaobtener HTML<br />
  13. 13. servidor<br />web<br />Proceso PHP<br />en el proceso, un documento dinámico puede involucrar diversos recursos<br />base de datos<br />email<br />archivos<br />gráficos<br />etc <br />
  14. 14. ¿Porqué PHP?<br />Esampliamentesoportadopor los servicios de hosting<br />Eslibre<br />Variossites importantes se hanescrito en PHP (Wikipedia , YouTube, Yahoo, Facebook, WordPress…)<br />Variospaquetesimportantesestánescritos en PHP (WordPress, OS Commerce, Joomla, Drupal…)<br />Es simple, directo, flexible…<br />Ha evolucionadoparasoportarprogramaciónorientada a objetos<br />
  15. 15. Instalación<br />
  16. 16. instalando PHP<br />AMP<br />instalar<br />Apache<br />instalar<br />MySQL<br />instalar<br />PHP<br />configurar<br />PHP<br />Apache<br />+ móduloPHP<br />En la instalación manual hay quebajarcadacomponente, instalarlo y configurarlo.<br />configurar<br />Apache<br />configurar<br />PHP<br />
  17. 17. LAMP, WAMP, …<br />Típicamente, PHP se instalaparatrabajarjunto con Apache y MySQL<br />Cuando la instalaciónaparece en Linux, se la llama LAMP<br />Cuando la instalaciónaparece en Windows, se la llama WAMP<br />Y asípor el estilo…<br />A<br />M<br />P<br />L<br />A<br />M<br />P<br />W<br />A<br />M<br />P<br />M<br />
  18. 18. XAMPP<br /><ul><li>Hay varios proyectos que difunden paquetes que contienen esas instalaciones típicas.
  19. 19. Usarlos puede facilitar la instalación, y el día a día con el entorno de desarrollo.
  20. 20. 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</li></li></ul><li>Editores, IDEs<br /><ul><li>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.
  21. 21. Hay editores de texto muy útiles para programación, como Notepad++, jEdit, …
  22. 22. Y entornos de desarrollo muy buenos, como Dreamweaver, Aptana, Eclipse, Zend Studio…</li></li></ul><li>Editores, IDEs<br /><ul><li>Estos son los quesuelousar
  23. 23. Notepad, sino hay nada más a la mano
  24. 24. Notepad++esexcelente, ligero, con FTP y unabuenautilidadparaconvertir Unicode
  25. 25. Dreamweaveresexcelentepara el diseñoHTML y ademástienebuensoportepara PHP
  26. 26. Aptanaestabasada en Eclipse, tienemucho mejorsoportepara PHP, HTML, Javascript…
  27. 27. Nano, cuandoestoyen unaconsola Linux</li></li></ul><li>Empezando<br />El panel de control de XAMPP, desde donde podemos iniciar y detener sus servicios<br />
  28. 28. Programando<br />
  29. 29. Programando<br />lo básico<br />
  30. 30. ¡Hola Mundo!<br />¡Hola Mundo!<br />hola_mundo.php<br />
  31. 31. ¡HolaMundo!<br />hola_mundo.php<br /><?php<br />echo '¡Hola Mundo!';<br />?><br /><ul><li>El código php se escribe entre etiquetas <?php y ?>
  32. 32. Para escribir algo en la página, podemos usar echo
  33. 33. Las cadenas se escriben entre apóstrofes 'así', ó entre comillas "así"
  34. 34. El nombre del archivo tiene la extensión php</li></li></ul><li>¡Hola Mundo!<br />hola_mundo.php<br /><?php<br />echo '¡Hola Mundo!';<br />?><br />htdocs<br />
  35. 35. …¡Hola Mundo!<br />htdocs<br />htdocs/index.php<br />http://localhost/index.php<br />htdocs/hola_mundo.php<br />http://localhost/hola_mundo.php<br />
  36. 36. …¡Hola Mundo!<br />unicode guardado como ASCII<br />unicode guardado como UTF-8<br />En Notepad++ es fácil comprobar y cambiar el encode<br />Si usamos unicode, tener cuidado de guardar el archivo en UTF-8 (sin BOM)<br />
  37. 37. …¡Hola Mundo!<br />servidor<br />web<br />http://localhost/hola_mundo.php<br />navegador<br />¡Hola Mundo!<br /><?php<br />echo '¡Hola Mundo!';<br />?><br />.php<br />HTML<br />
  38. 38. …¡HolaMundo!<br />hola_mundo.php<br /><html><br /><body><br /> <h1><br /> <?php echo '¡Hola Mundo!';?><br /> </h1><br /></body><br /></html><br /><ul><li>Un documentophpesbásicamente html con códigoinserto
  39. 39. Los bloquesphp se reemplazanporsuresultado</li></li></ul><li>…¡Hola Mundo!<br /><html><br /><body><br /> <h1><br /> ¡Hola Mundo!<br /> </h1><br /></body><br /></html><br />
  40. 40. Cuadrados<br />cuadrados.php<br />
  41. 41. Cuadrados<br />cuadrados.php<br /><html><br /><body><br /> <h1>Cuadrados</h1><br /> <table border="1"><br /><?php for ($i=1; $i<=10; $i++) { ?><br /> <tr><br /> <td><?php echo $i;?></td><br /> <td><?php echo $i*$i;?></td><br /> </tr><br /><?php } ?><br /> </table><br /></body><br /></html><br />
  42. 42. …Cuadrados<br /><html><br /><body><br /> <h1>Cuadrados</h1><br /> <table border="1"><br /> <tr><br /> <td>1</td><br /> <td>1</td><br /> </tr><br /><tr><br /> <td>2</td><br /> <td>4</td><br /> </tr><br /> …<br /><tr><br /> <td>10</td><br /> <td>100</td><br /> </tr><br /> </table><br /></body><br /></html><br />
  43. 43. Programando<br />formularios<br />
  44. 44. Hola<br />hola_form.php<br />hola.php<br />¡Hola Antonio!<br />Antonio<br />OK<br />
  45. 45. Hola<br />hola_form.php<br /><html><br /><body><br /> <form action="hola.php" method="post"><br />Nombre:<br /> <input type="text" name="nombre"/><br /> <input type="submit" value="OK"/><br /> </form><br /></body><br /></html><br />
  46. 46. …Hola<br />hola.php<br /><html><br /><body><br /><h1><br /> <?php echo '¡Hola '.$_POST['nombre'].'!';?><br /></h1><br /></body><br /></html><br />
  47. 47. …Hola<br />http://localhost/hola_form.php<br />servidor<br />web<br />navegador<br /><form>...</form><br /><form>...</form><br />hola_form.php<br />action=hola.php<br />nombre=Antonio<br />¡Hola Antonio!<br /><?php<br />echo '¡Hola '<br />.$_POST['nombre']<br />.'!';<br />?><br />hola.php<br />HTML<br />
  48. 48. Hola<br />hola.php<br />¡Hola Antonio!<br />Antonio<br />OK<br />
  49. 49. …Hola<br />versión de una página<br />hola.php<br /><html><br /><body><br /> <?php<br /> $nombre = isset($_POST['nombre'])?$_POST['nombre']:'';<br /> ?><br /> <form action="hola.php" method="post"><br />Nombre:<br /> <input type="text" name="nombre" <br /> value="<?php echo $nombre;?>"/><br /> <input type="submit" value="OK"><br /> </form><br /><?php if ($nombre) {<br /> echo '<h1>¡Hola '.$nombre.'!</h1>';<br /> }?><br /></body><br /></html><br />
  50. 50. …Hola<br />http://localhost/hola.php<br />servidor<br />web<br />navegador<br /><form>...</form><br /><?php<br />$nombre = ...;<br />?><br /><form>...</form><br /><?php<br />if ($nombre) {<br /> echo '<h1>¡Hola '<br /> .$nombre.'!</h1>';<br />}<br />?><br />action=hola.php<br />nombre=Antonio<br />¡Hola Antonio!<br />hola.php<br />HTML<br />
  51. 51. Programando<br />un poco más<br />
  52. 52. Bloques básicos<br />asignación<br />$x= 1+1;<br />decisión<br />if ($x>0) {<br /> ...<br />}<br />switch ($x) {<br />case 1:<br /> ...<br /> break;<br /> ...<br /> default<br /> ...<br /> break;<br />}<br /><ul><li>if
  53. 53. if/else
  54. 54. switch</li></ul>if ($x>0) {<br /> ...<br />} else {<br /> ...<br />}<br />repetición<br />for ($i=0; $i<10; $i++) {<br /> ...<br />}<br /><ul><li>for
  55. 55. while
  56. 56. do-while</li></ul>while ($i<10) {<br /> ...<br />}<br />do {<br /> ...<br />} while ($i<10);<br />
  57. 57. Arrays<br />(<br /> [0]=>2<br /> [1]=>3<br /> [2]=>1<br /> [3]=>'Hola'<br />)<br />$x = 1;<br />$a= array(2, 3, $x, 'Hola');<br />'Hola'<br />a[3]<br />2<br />3<br />1<br />'Hola'<br />foreach ($a as $item) {<br /> echo $item.'<br/>';<br />}<br />foreach ($a as $indice=>$item) {<br /> echo $indice.': '.$item.'<br/>';<br />}<br />0: 2<br />1: 3<br />2: 1<br />3: 'Hola'<br />
  58. 58. Funciones<br />functionhola_mundo() {<br /> echo '¡HolaMundo!';<br />}<br />hola_mundo();<br />function hola($x) {<br /> echo '¡Hola '.$x.'!';<br />}<br />hola('Mundo');<br />function saludo($y) {<br /> return '¡Hola '.$y.'!';<br />}<br />function hola($x) {<br /> echo saludo($x);<br />}<br />hola('Mundo');<br />¡Hola Mundo!<br />
  59. 59. Clases<br />classHola() {<br /> function saludo($y) {<br /> return '¡Hola '.$y.'!';<br /> }<br /> function hola($x) {<br /> echo $this->saludo($x);<br /> }<br />}<br />$h = new Hola();<br />$h->hola('Mundo');<br />¡Hola Mundo!<br />
  60. 60. include<br />cabecera.php<br />echo '<h1>Conociendo PHP</h1>';<br />_hola_mundo.php<br />echo 'Hola Mundo';<br />hola_mundo.php<br /><html><br /><body><br /><?php include 'cabecera.php';?><br /><?php include '_hola_mundo.php';?><br /></body><br /></html><br />
  61. 61. require<br />funciones.php<br />function hola() {<br /> return '¡Hola Mundo!';<br />}<br />_hola_mundo.php<br />echo hola();<br />hola_mundo.php<br /><html><br /><body><br /><?php require('funciones.php');?><br /> <?php include '_hola_mundo.php';?><br /></body><br /></html><br />
  62. 62. include & require<br /><ul><li>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.
  63. 63. Un mismo archivo se puede incluir más de una vez.
  64. 64. Para prevenir duplicaciones en las inclusiones existen include_once() y require_once().</li></li></ul><li>Frameworks<br /><ul><li>Un framework esuna forma de organizar el trabajo.
  65. 65. Luego de un tiempodesarrollando, unoempieza a notarciertospatrones de organización. Aún sin proponérselo, vasurgiendo un framework.
  66. 66. Algunos frameworks muydifundidos en la comunidad PHP son CakePHP, CodeIgniter, Zend, Symphony…
  67. 67. Un framework estandarizadoobliga a seguirciertasconvenciones de organización, pero pone a nuestradisposicióncódigoampliamenteprobado y optimizado.</li></li></ul><li>Frameworks<br /><ul><li>Drupal es un CMS construido usado un framework propio.
  68. 68. El framework de Drupal es muy extensible y tiene una comunidad muy activa.
  69. 69. Próximamente el framework se separaría del CMS, pero aún en el nivel actual permite crear aplicaciones más o menos generales.</li></li></ul><li>Enlaces<br /><ul><li>PHP site
  70. 70. http://php.net
  71. 71. W3Schools – PHP
  72. 72. http://www.w3schools.com/PHP/default.asp
  73. 73. CakePHP
  74. 74. http://cakephp.org
  75. 75. CodeIgniter
  76. 76. http://codeigniter.com
  77. 77. Zend Framework
  78. 78. http://framework.zend.com
  79. 79. Symphony
  80. 80. http://www.symfony-project.org
  81. 81. Drupal
  82. 82. http://drupal.org
  83. 83. Coquette Icons
  84. 84. http://dryicons.com/free-icons/preview/coquette-icons-set/</li></li></ul><li>Gracias porsuatención<br />preguntas,<br />comentarios<br />Conociendo PHP<br />Introducción a uno de los lenguajes de programación web másusados en Internet<br />Antonio Kobashikawa Carrasco<br />akobashikawa@gmail.com<br />@akobashikawa<br />

×